vishal patel
Applied in productionFoundationUpdated 2026-09-23

Architecture Decision Records (ADRs) & Trade-off Thinking

Capture each significant decision — context, options, decision, consequences — so the "why" survives people leaving. Plus how to reason about trade-offs.

documentationgovernancedecision-makingtrd

ADR template (illustrative example)

# ADR-012: Enforce locale fallback rule in release service, not UI
 
## Status
Accepted
 
## Context
Entries could be published to locales they are not localised in via fallback…
 
## Options
1. UI-only validation — cheap, bypassed by API/CLI users
2. Enforce in release service (v2) — consistent for all clients
3. Enforce at deploy time only — late feedback
 
## Decision
Option 2, plus deploy-time skip as a safety net for items added earlier.
 
## Consequences
+ All clients (UI, API, SDK, CLI) get the same rule
− v1 releases excluded; document the boundary

How to think about trade-offs

diagram
  • There are no best practices, only trade-offs in context. Always say what you're giving up.
  • Name the quality attributes that matter for this system; you can't maximise all of them.
  • Prefer reversible decisions and decide those quickly. Spend time on the one-way doors.
Where I've used it

The TRDs I wrote as tech lead followed this shape: context, options considered, decision, and backward-compatibility impact. Deploy-side changes went through review by the team owning the delivery service. Written decisions are what made cross-team review possible.

Sources & further learning

Videos, courses, docs and books I recommend for this topic.

Related topics