Skip to content

Commit d2de6a0

Browse files
committed
docs: add ADR template for architecture decisions
Add a template for Architecture Decision Records (ADRs) to support documenting significant architectural and design decisions in the project.
1 parent d36fda3 commit d2de6a0

File tree

1 file changed

+86
-0
lines changed

1 file changed

+86
-0
lines changed

docs/decisions/ADR-000-template.md

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
---
2+
# These are optional metadata elements. Feel free to remove any of them.
3+
status: '{proposed | rejected | accepted | deprecated | … | superseded by ADR-0123'
4+
date: { YYYY-MM-DD when the decision was last updated }
5+
decision-makers: { list everyone involved in the decision }
6+
consulted:
7+
{
8+
list everyone whose opinions are sought (typically subject-matter experts); and with whom there is a two-way communication,
9+
}
10+
informed:
11+
{
12+
list everyone who is kept up-to-date on progress; and with whom there is a one-way communication,
13+
}
14+
---
15+
16+
# {short title, representative of solved problem and found solution}
17+
18+
## Context and Problem Statement
19+
20+
{Describe the context and problem statement, e.g., in free form using two to three sentences or in the form of an illustrative story. You may want to articulate the problem in form of a question and add links to collaboration boards or issue management systems.}
21+
22+
<!-- This is an optional element. Feel free to remove. -->
23+
24+
## Decision Drivers
25+
26+
- {decision driver 1, e.g., a force, facing concern, …}
27+
- {decision driver 2, e.g., a force, facing concern, …}
28+
-<!-- numbers of drivers can vary -->
29+
30+
## Considered Options
31+
32+
- {title of option 1}
33+
- {title of option 2}
34+
- {title of option 3}
35+
-<!-- numbers of options can vary -->
36+
37+
## Decision Outcome
38+
39+
Chosen option: "{title of option 1}", because {justification. e.g., only option, which meets k.o. criterion decision driver | which resolves force {force} | … | comes out best (see below)}.
40+
41+
<!-- This is an optional element. Feel free to remove. -->
42+
43+
### Consequences
44+
45+
- Good, because {positive consequence, e.g., improvement of one or more desired qualities, …}
46+
- Bad, because {negative consequence, e.g., compromising one or more desired qualities, …}
47+
-<!-- numbers of consequences can vary -->
48+
49+
<!-- This is an optional element. Feel free to remove. -->
50+
51+
### Confirmation
52+
53+
{Describe how the implementation of/compliance with the ADR can/will be confirmed. Are the design that was decided for and its implementation in line with the decision made? E.g., a design/code review or a test with a library such as ArchUnit can help validate this. Not that although we classify this element as optional, it is included in many ADRs.}
54+
55+
<!-- This is an optional element. Feel free to remove. -->
56+
57+
## Pros and Cons of the Options
58+
59+
### {title of option 1}
60+
61+
<!-- This is an optional element. Feel free to remove. -->
62+
63+
{example | description | pointer to more information | …}
64+
65+
- Good, because {argument a}
66+
- Good, because {argument b}
67+
<!-- use "neutral" if the given argument weights neither for good nor bad -->
68+
- Neutral, because {argument c}
69+
- Bad, because {argument d}
70+
-<!-- numbers of pros and cons can vary -->
71+
72+
### {title of other option}
73+
74+
{example | description | pointer to more information | …}
75+
76+
- Good, because {argument a}
77+
- Good, because {argument b}
78+
- Neutral, because {argument c}
79+
- Bad, because {argument d}
80+
-
81+
82+
<!-- This is an optional element. Feel free to remove. -->
83+
84+
## More Information
85+
86+
{You might want to provide additional evidence/confidence for the decision outcome here and/or document the team agreement on the decision and/or define when/how this decision the decision should be realized and if/when it should be re-visited. Links to other decisions and resources might appear here as well.}

0 commit comments

Comments
 (0)