---
# System prepended metadata

title: How Should we use Architecture Decision Records ?
tags: [tf1, adr]

---

# How Should we use Architecture Decision Records ?

- ID: 1
- Status: [draft]
- Owner: [Michael Chiche]
- Participants: [web-front-team]
- Date: [2023-08-08]
- Tags: [ADR]

<!-- Technical Story: [How do we manage ADR ?] optional -->

## Context

We need ADRs 

## Problem Statement

We want to use ADRs to have a better history for our architectural decisions
We need to decide the format for the files where store our ADRs and also where we will generate/store our ADRs.

## Decision Drivers <!-- optional -->

- Unicity of ADR:
  We want to be able to reference specific ADRs simply, and easy to remeber
- Easiness to create/read ADRs
- Easy to implement
  
## Considered Options

There are 2 linked decisions to be made in this ADR.

Format of the ADR files

- **1** `NNNN-title`
- **2** `YYYY-MM-DD-title`

Location of the ADR files

- **a** Put the ADRs in a specific repository in a
- **b** Put the ADRs in a specific folder inside our repository
- **c** Put the ADRs in folders related to their _subject_ in a ADR specific folder
  

---

- **1.a** Put the ADRs in a specific repository with the format `NNNN-title`
- **1.b** Generate ADRs on the fly on a specific branch to be merged on master with format `NNNN-title`
- **2.a** Put the ADRs in a specific repository with the format `YYYY-MM-DD-title`
- **2.b** Generate ADRs on the fly on a specific branch to be merged on master with format `YYYY-MM-DD-title`

## Decision Outcome

We are chosing solution **1.b**, Generate ADRs on the fly on a specific branch to be merged on master with format `NNNN-title`

### Positive Consequences <!-- optional -->

- Unique IDs for ADRs
- Easy to remember IDs for future reference
- ADRs are in the same repository
- 
### Negative Consequences <!-- optional -->

- It is possible to have conflicts, if many ADRs are written at the same time, and have the same IDs, but they are easy to resolve.

## Pros and Cons of the Options <!-- optional -->

|     | Uniqueness | Ease of Access |  Easy to implement       |
| --: | :--------: | :------------: | :----------------------: |
| 1.a |     X      |                |            X             |
| 2.a |            |                |            X             |
| 1.b |     X      |       X        |            X             |
| 2.b |            |       X        |            X             |
| 1.c |            |       X        |                          |
| 2.c |            |       X        |                          |


### Option C | Put the ADRs in folders related to their _subject_ in a ADR specific folder

#### Cons

We dont know what folders to create right now, it is overcomplicating things that we dont know yet if we need, and also, we have to _try_ to figure out what folders we create.
Also, how do we know in which folder to create an ADR ? If we have a folder for `SEO` and for `GraphQL`, how do we know in which folder we put it?