|
| 1 | +# ADR Template |
| 2 | + |
| 3 | +## ADR_[ADR_id]: [Descriptive title of the architectural decision] |
| 4 | + |
| 5 | +*Note: This template maintains the Reader-focused design principle. Template sections can be completed out of order. Recommended sequence: Date → Status → People → Context → Consequences → Options → Decision. See ADR Guide for detailed working methods.* |
| 6 | + |
| 7 | +## Date |
| 8 | + |
| 9 | +Decision date: YYYY-MM-DD |
| 10 | +Last status update: YYYY-MM-DD |
| 11 | + |
| 12 | +## Status |
| 13 | + |
| 14 | +- [ ] Proposed |
| 15 | +- [ ] Accepted |
| 16 | +- [ ] Deprecated |
| 17 | +- [ ] Superseded |
| 18 | + |
| 19 | +### Implementation Status |
| 20 | + |
| 21 | +- [ ] Planned |
| 22 | +- [ ] In Development |
| 23 | +- [ ] Implemented |
| 24 | +- [ ] Verified |
| 25 | +- [ ] Discontinued |
| 26 | + |
| 27 | +## People |
| 28 | + |
| 29 | +### Author/Decision Owner (Single Point of Accountability) |
| 30 | + |
| 31 | +[Name of person or team accountable for this decision and point of contact for questions] |
| 32 | + |
| 33 | +- [Person 1] |
| 34 | +- [Person 2] |
| 35 | +- [Person 3] |
| 36 | + |
| 37 | +### Consulted (Subject Matter Experts) |
| 38 | + |
| 39 | +[List of people with relevant expertise who provided advice] |
| 40 | + |
| 41 | +- [Person 1] |
| 42 | +- [Person 2] |
| 43 | +- [Person 3] |
| 44 | + |
| 45 | +### Informed (Affected Parties) |
| 46 | + |
| 47 | +[People/teams affected by this decision who should be aware] |
| 48 | + |
| 49 | +- [ ] [Person 1] |
| 50 | +- [ ] [Person 2] |
| 51 | +- [ ] [Person 3] |
| 52 | + |
| 53 | +*Note: People listed in "Informed" should submit a PR to check their name after reading this ADR. This can be done during the initial review process of the ADR upload/commit PR (when the file is first uploaded to GitHub and the author requests reviews), or in a separate PR after the ADR is merged.* |
| 54 | + |
| 55 | +## Decision |
| 56 | + |
| 57 | +[Briefly describe the decision made in "We will..." format. This section should be concise - it's a declaration of intent for implementers. Detailed reasoning belongs in other sections.] |
| 58 | + |
| 59 | +## Context |
| 60 | + |
| 61 | +[Describe the situation that calls for a decision. Focus on forces, constraints, and circumstances that led to needing this decision. Answer "What is the problem?" not "What's the solution?" Include: |
| 62 | + |
| 63 | +- Technical, business, and organizational context |
| 64 | +- Applicable requirements (functional and cross-functional) |
| 65 | +- Current state and why change is needed |
| 66 | +- Key stakeholders and their concerns] |
| 67 | + |
| 68 | +### Decision Criteria (Optional) |
| 69 | + |
| 70 | +[Explicit criteria for evaluating options, such as: |
| 71 | + |
| 72 | +- Performance requirements |
| 73 | +- Cost constraints |
| 74 | +- Security requirements |
| 75 | +- Maintainability needs |
| 76 | +- Time-to-market considerations] |
| 77 | + |
| 78 | +## Problem (Optional) |
| 79 | + |
| 80 | +[Clearly state the problem being addressed. What issue or opportunity requires this architectural decision?] |
| 81 | + |
| 82 | +## Decision in Details (Optional) |
| 83 | + |
| 84 | +[Describe in details the decision made, including: |
| 85 | + |
| 86 | +- Key technical details |
| 87 | +- Implementation approach |
| 88 | +- Timeline considerations |
| 89 | +- Who is responsible for implementation] |
| 90 | + |
| 91 | +### Decision Drivers (Optional) |
| 92 | + |
| 93 | +- [Driver 1: Key force or requirement influencing the decision] |
| 94 | +- [Driver 2: Another key consideration] |
| 95 | +- [...] |
| 96 | + |
| 97 | +## Options |
| 98 | + |
| 99 | +[Briefly list the considered options. Each option is numbered for easy reference, with the selected option marked clearly as `(SELECTED)`. Aim for 3-5 options minimum. Always include at least "do nothing" option. A detailed description of each option can be written in the Consequences section below.] |
| 100 | + |
| 101 | +1. (SELECTED) [Name of selected option] |
| 102 | +2. [Name of alternative option] |
| 103 | +3. [Name of alternative option] |
| 104 | +4. [Do nothing / Status quo option] |
| 105 | + |
| 106 | +## Consequences (Optional) |
| 107 | + |
| 108 | +### Option 1: [Name of option] (SELECTED) |
| 109 | + |
| 110 | +[Brief description of this option.] |
| 111 | + |
| 112 | +**Selected because:** |
| 113 | + |
| 114 | +- [Benefit 1 that led to selection] |
| 115 | +- [Benefit 2 that led to selection] |
| 116 | + |
| 117 | +**Selected despite:** |
| 118 | + |
| 119 | +- [Drawback 1 that we accept] |
| 120 | +- [Drawback 2 that we accept] |
| 121 | + |
| 122 | +**Risks and Mitigations:** |
| 123 | + |
| 124 | +- [Risk 1] |
| 125 | + - [Mitigation strategy 1] |
| 126 | +- [Risk 2] |
| 127 | + - [Mitigation strategy 2] |
| 128 | + |
| 129 | +**Failure Recovery:** |
| 130 | +[How will we recover if this option fails?] |
| 131 | + |
| 132 | +### Option 2: [Name of alternative option] |
| 133 | + |
| 134 | +[Brief description of this option.] |
| 135 | + |
| 136 | +**Rejected because:** |
| 137 | + |
| 138 | +- [Critical drawback 1 - reason for rejection] |
| 139 | +- [Critical drawback 2 - reason for rejection] |
| 140 | + |
| 141 | +**Rejected despite:** |
| 142 | + |
| 143 | +- [Potential benefit 1 we're giving up] |
| 144 | +- [Potential benefit 2 we're giving up] |
| 145 | + |
| 146 | +*(Repeat for additional options if applicable)* |
| 147 | + |
| 148 | +## Implementation Notes (Optional) |
| 149 | + |
| 150 | +[Any specific guidance for implementing this decision, including: |
| 151 | + |
| 152 | +- Required dependencies |
| 153 | +- Migration steps |
| 154 | +- Testing considerations |
| 155 | +- Failure Recovery / Rollback procedures] |
| 156 | + |
| 157 | +## Confirmation (Optional) |
| 158 | + |
| 159 | +[Describe how the implementation of this decision will be verified. Include: |
| 160 | + |
| 161 | +- Acceptance criteria |
| 162 | +- Testing approach |
| 163 | +- Automated verification methods] |
| 164 | + |
| 165 | +## Advice (Optional) |
| 166 | + |
| 167 | +[Raw, unfiltered contributions from people who offered advice. his section provides transparency into the decision process and serves as a learning resource.] |
| 168 | + |
| 169 | +- [Advice given] ([Advice-giver's name, role], YYYY-MM-DD) |
| 170 | +- [Advice given] ([Advice-giver's name, role], YYYY-MM-DD) |
| 171 | + |
| 172 | +## Glossary (Optional) |
| 173 | + |
| 174 | +- **[Term]**: [Definition] |
| 175 | + |
| 176 | +## References |
| 177 | + |
| 178 | +- [Related documents, links, and research materials] |
| 179 | +- [Previous ADRs that influence this decision] |
| 180 | +- [External resources that informed this decision] |
| 181 | +- [Requirements or standards] |
| 182 | + |
| 183 | +## ADR Relationships |
| 184 | + |
| 185 | +[Fill in the section if applicable or leave blank for further filling.] |
| 186 | + |
| 187 | +### Supersedes |
| 188 | + |
| 189 | +- ADR #[X]: [Brief description of superseded decision] |
| 190 | + |
| 191 | +### Superseded By |
| 192 | + |
| 193 | +- ADR #[X]: [Brief description of superseding decision] |
| 194 | + |
| 195 | +### Related ADRs |
| 196 | + |
| 197 | +- ADR #[X]: [Brief description of relationship] |
0 commit comments