# 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?