How to Write an Architecture Decision Record (ADR), with a Template
StackSide

Why write an ADR at all
The reasons behind a decision fade within months. An ADR records why a technology was chosen and what was given up, so the same argument does not restart every time someone new joins. Do not edit an accepted ADR; when the decision changes, write a new one that supersedes it.
Write the context and constraints first
Describe the facts that made the decision necessary and the limits you work within: how far a failure can spread, how many engineers run the system. Leave product names out of the context section.
Build the options from what others did
Check what other companies chose at the same decision point. Stripe replaced an off-the-shelf proxy with its own data plane. That case proves “build it ourselves” is a real option, not a hypothetical one.
Building a data plane from scratch: Stripe's own high-performance distributed proxy
Stack: Envoy, Go, C++
Record the conditions a choice creates, not only its benefits. Netflix’s tool for measuring the blast radius of library changes is a reminder that a decision about shared code affects every consumer.
Beyond API Compatibility: Building a Tool to Measure the Blast Radius of Library Changes
Stack: Amazon S3, Amazon Athena, GraphQL
When the choice is between two tools, list the structural differences that matter for your workload, such as delivery guarantees and operating burden, and cite where you learned them.
Write the decision and its consequences
Start the decision with “We will…” in one sentence. In consequences, list the costs as clearly as the benefits. An ADR with no listed costs usually describes a decision that will be regretted later.
Template (copy)
# ADR-NUMBER: Title - Status: Proposed / Accepted / Superseded by ADR-NUMBER ## Context What situation and constraints led to this decision. ## Options - Option A: pros, cons - Option B: pros, cons ## Decision One sentence on what we decided, and one or two on why. ## Consequences - What gets better - What we pay for it - Conditions that should trigger a new review
# ADR-NUMBER: Title
- Status: Proposed / Accepted / Superseded by ADR-NUMBER
## Context
What situation and constraints led to this decision.
## Options
- Option A: pros, cons
- Option B: pros, cons
## Decision
One sentence on what we decided, and one or two on why.
## Consequences
- What gets better
- What we pay for it
- Conditions that should trigger a new review
Cases quoted in this guide are compiled automatically from public posts and videos and may contain errors. Check each original link. Read the disclaimer
New cases, once a week
Get newly added topics and cases by email once a week.
Once a week. New topics and cases only. Unsubscribe anytime.
Sign in with Google to subscribe. We store your email, name and profile photo. You must be 14 or older. Privacy policy