Logo

cavaro

Document
Engineering

Architecture Decision Record (ADR)

An Architecture Decision Record template for capturing and preserving important technical decisions and their context.

4 min read

Free Template

Architecture Decision Records (ADRs) capture the context, decision, and consequences of important architectural choices. Unlike design documents that propose changes, ADRs document decisions that have been made — creating a permanent record of why things are the way they are. This template follows the widely adopted Michael Nygard format with Status, Context, Decision, and Consequences sections.

Why ADRs Matter

Six months from now, your team will wonder "why did we choose PostgreSQL over DynamoDB?" or "why is this service in Python instead of Go?" ADRs answer these questions by preserving the context and reasoning behind architectural choices. They prevent revisiting settled decisions, speed up onboarding for new team members, and create an audit trail of how the system evolved.

ADR Format

The template follows the standard ADR structure.

  • Title: A short, descriptive name (e.g., "Use PostgreSQL for user data")
  • Status: Proposed, Accepted, Deprecated, or Superseded (with link to replacement)
  • Context: The forces at play — technical constraints, business requirements, team capabilities
  • Decision: The change we are making — stated clearly and concisely
  • Consequences: What becomes easier, harder, or different as a result of this decision

Tips for Writing Good ADRs

Keep ADRs short — one to two pages maximum. Focus on the "why" more than the "what." Include alternatives you considered and briefly explain why they were not chosen. Write ADRs as soon as a decision is made, while the context is fresh. Number your ADRs sequentially so they form a chronological record of decisions.

Key Features

Standard Nygard format (Status, Context, Decision, Consequences)

Sequential numbering system for chronological tracking

Status field with standard lifecycle values

Alternatives considered section

Links to related ADRs for decision chains

Who Should Use This Template
  • Recording technology selection decisions (databases, languages, frameworks)
  • Documenting API design choices and trade-offs
  • Tracking architectural pattern adoption (microservices, event-driven, CQRS)
  • Preserving context for compliance and audit purposes
Ready to Get Started?

Create your own document from this template in seconds — completely free.

Frequently Asked Questions
When should I write an ADR vs a design doc?

Write an ADR when a decision has been made and you want to record it. Write a design doc when you are still exploring options and need feedback. Many teams write a design doc first, then extract the final decision into an ADR.

Can I update an ADR after it is accepted?

ADRs are intended to be immutable records. If a decision changes, write a new ADR that supersedes the old one and update the original ADR's status to "Superseded" with a link to the replacement.

How do I organize ADRs in my repository?

Store ADRs in a docs/adr/ directory, numbered sequentially (0001-use-postgresql.md, 0002-adopt-grpc.md). This makes them easy to browse chronologically and reference by number in discussions.

© 2026 Cavaro. All rights reserved.