Architecture Decision Records
Architecture Decision Records (ADRs) are short documents that capture a significant architectural choice, its context, the options considered, and the rationale for the decision. They give future team members the reasoning behind the system's current shape.
itEnterprise architecture and integration | OpenSkills.info
Intro
Architecture Decision Records
Important technical decisions often outlive the meeting, ticket, and people who made them. The implementation shows what exists. It rarely preserves the constraints, alternatives, and trade-offs that shaped the choice.
An architecture decision record, or ADR, is a short document about one significant decision. It states the context, the decision, its status, and its consequences. A collection of ADRs forms a decision log.
The point is not paperwork. The point is durable reasoning. A future teammate should be able to see why the team chose a direction and whether the original context still applies.
The mental model: a decision with memory
Treat an ADR as a durable link between a problem and its outcome:
context and forces
|
v
considered options -> decision -> consequences
|
v
implementation evidence
|
v
keep, revise, or supersede
The decision is central. Context explains the conditions around it. Consequences describe the new conditions created by it. Later evidence tells you whether the choice still fits.
This structure prevents two expensive reactions to old decisions. You do not have to accept a choice without understanding it. You also do not have to reverse it without knowing what requirement it protected.
Decide what deserves an ADR
Not every choice is architectural. Record a choice when it materially affects the system or constrains later work.
The original ADR guidance identifies five useful areas:
- Structure — major decomposition or architecture patterns.
- Quality attributes — security, availability, performance, fault tolerance, and other system qualities.
- Dependencies — coupling among components, services, or external systems.
- Interfaces — APIs, events, schemas, and published contracts.
- Construction techniques — consequential frameworks, tools, and engineering processes.
Reversal cost is another useful test. A local naming choice is cheap to change. A data ownership boundary, authentication model, or public API can shape years of work.
Skip the ADR when a choice is trivial, local, or easy to reverse. Recording every implementation detail buries the decisions people need to find.
Use one record for one decision
Continue the course
This section is part of the paid course.
See pricing to subscribe, or log in if you already have access.
Where this skill leads
Relevant careers
See how this topic contributes to broader role-level skill maps.
Sources
- https://cognitect.com/blog/2011/11/15/documenting-architecture-decisions
Supports
- Motivation for small, modular architecture records
- Architecturally significant decision scope
- One significant decision per ADR
- Title, status, context, decision, and consequences format
- Active decision language and value-neutral context
- Positive, negative, and neutral consequences
- Repository storage, sequential records, and supersession
- https://adr.github.io/
Supports
- Architectural decision and ADR definitions
- One architectural decision and its rationale per record
- Decision log as a collection of ADRs
- ADR vocabulary, tooling, research, and practice references
- https://adr.github.io/adr-templates/
Supports
- Nygard template fields
- MADR emphasis on considered options and pros and cons
- MADR decision metadata and confirmation
- Existence of multiple ADR formats, including Y-Statements
- https://adr.github.io/madr/
Supports
- Structured Markdown ADR format
- Decision drivers, considered options, outcome, and consequences
- Confirmation and detailed option trade-offs
- Manual creation and filename conventions
- Organization approaches for large decision logs
- MADR version 4.0.0 documentation
- https://docs.aws.amazon.com/prescriptive-guidance/latest/architectural-decision-records/welcome.html
Supports
- Team alignment and strategic direction outcomes
- Repeated-decision and missing-justification anti-patterns
- Context preservation for current and future stakeholders
- ADRs for technical and process-related architectural decisions
- https://docs.aws.amazon.com/prescriptive-guidance/latest/architectural-decision-records/adr-process.html
Supports
- ADR, lifecycle, and decision log definitions
- Architecturally significant decision categories
- Minimum context, decision, and consequences content
- Ownership, proposal, review, acceptance, and rejection process
- Accepted record immutability and supersession
- Use of ADRs during code and architecture reviews
- https://docs.aws.amazon.com/prescriptive-guidance/latest/architectural-decision-records/best-practices.html
Supports
- Distributed authorship with explicit ownership
- Preservation of ADR history and superseding links
- Central, accessible storage in a repository or wiki
- Separate remediation for non-compliant legacy code
- https://docs.aws.amazon.com/prescriptive-guidance/latest/architectural-decision-records/faq.html
Supports
- ADR scope and review timing
- Ownership and contribution guidance
- Minimum content and imperative decision language
- Trade-offs, status, and change history
- https://docs.aws.amazon.com/prescriptive-guidance/latest/architectural-decision-records/appendix.html
Supports
- Worked ADR with title, status, date, context, decision, and consequences
- Positive and negative consequence examples
- Compliance, ownership, version, and changelog fields
- https://www.thoughtworks.com/en-ca/radar/techniques/lightweight-architecture-decision-records
Supports
- Lightweight ADRs in evolutionary architecture
- Context and consequences as core information
- Source control as a recommended storage location
- Benefit to future team members and external oversight
