| status | accepted | ||
|---|---|---|---|
| date |
|
||
| decision-makers |
|
ID: cpt-{system}-adr-{slug}
{Describe the context and problem statement in 2-3 sentences. You may articulate the problem as a question.}
- {Decision driver 1, e.g., a force, facing concern, …}
- {Decision driver 2, e.g., a force, facing concern, …}
- {Title of option 1}
- {Title of option 2}
- {Title of option 3}
Chosen option: "{title of option 1}", because {justification, e.g., only option which meets k.o. criterion decision driver | resolves force | comes out best}.
{Describe the concrete consequences of this decision for the later design and implementation. Do NOT repeat Good/Bad pros and cons here — those belong in the "Pros and Cons of the Options" section below. Instead, state what this decision requires, enables, or constrains in practice.}
- {Consequence 1, e.g., "Choosing X means we must define Y and register it in Z"}
- {Consequence 2, e.g., "This decision requires the library to provide A, and modules must adapt by doing B"}
- {Consequence 3, e.g., "Future extensibility will need to be handled via C"}
{Describe how the implementation/compliance of the ADR can be confirmed. E.g., design/code review, ArchUnit test, etc.}
{Description or pointer to more information}
- Good, because {argument a}
- Good, because {argument b}
- Neutral, because {argument c}
- Bad, because {argument d}
{Description or pointer to more information}
- Good, because {argument a}
- Bad, because {argument b}
{Additional evidence, team agreement, links to related decisions and resources.}
This decision directly addresses the following requirements or design elements:
cpt-{system}-fr-{slug}— {Brief description of how this decision satisfies/constrains this requirement}cpt-{system}-nfr-{slug}— {Brief description of how this decision satisfies/constrains this requirement}cpt-{system}-usecase-{slug}— {Brief description of the interaction/use case impacted}cpt-{system}-design-{slug}— {Brief description of design element affected}