ADR: The post that explains why its architecture is designed this way

23 min read

Architecture Decision Records were created for software—but have evolved into Any Decision Records. A comprehensive guide on how to document important decisions in short, versioned, and forget-proof documents.

Every codebase, every marketing process, and every operation carries an invisible layer: the set of decisions that led everything to turn out the way it is. You can read the code. The decision behind it—almost never. Six months later, no one remembers why the message queue replaced the synchronous call, why the attribution model changed, or why that vendor was dropped. Newcomers are left with only two bad options: accept the decision without understanding it, or reverse it without understanding it. ADR exists to create a third option.

What is an ADR?

An ADR (Architecture Decision Record) is a short document that captures a single decision relevant to a product or system, along with the context in which it was made and its implications. The most widely accepted definition is Martin Fowler’s: a document that should be only a few pages long and contain the decision, the context, and the significant ramifications—without becoming a complete description of the system.

The collection of all ADRs for a project forms its decision log—a sort of logbook that allows you to reconstruct a system’s history by reading the entries in order. The engineering documentation is deliberately minimal: short text, in Markdown or AsciiDoc, versioned along with the code.

The most subtle—and most valuable—point is that writing an ADR serves two purposes at once. It acts as a record, so that months or years from now, someone will understand why the system is designed this way. And it serves as a thinking tool: the act of writing forces the team to make trade-offs explicit, and it often brings differences of opinion to the surface so they can be discussed before the code is written.

ADR-0007.md TÍTULO CONTEXTO DECISÃO CONSEQUÊNCIAS 1 decisão = 1 registro 0001-usar-postgres.md 0002-api-rest-vs-graphql.md 0003-monolito-modular.md 0007-fila-para-webhooks.md 0008-feature-flags.md 0009-… (proposto) log de decisões (ADL)
FIG 1. Each ADR records a decision; the numbered set forms the project's decision log.

Vocabulary: AD, ADR, ADL, ASR

The community focused on this topic has standardized four acronyms that are worth knowing, because they appear in almost all the literature.

  • AD — Architectural Decision. A well-justified design choice that meets a relevant requirement (functional or non-functional).
  • ADR — Architecture Decision Record. The document that captures an AD and the reasoning behind it.
  • ADL — Architecture Decision Log. The collection of all ADRs for a project or organization.
  • ASR — Architecturally Significant Requirement. A requirement that has a measurable impact on the system's architecture and quality.

All of this falls under the umbrella of Architectural Knowledge Management (AKM). The good news: you don’t need to memorize any of this to get started. All you need is a text file and the discipline to write it down at the moment the decision is made.

The story: from Nygard to “Any Decision Record”

The term was coined by Michael Nygard in November 2011, in a post titled “Documenting Architecture Decisions,” written while he was working at the consulting firm Relevance (later Cognitect). Nygard didn’t invent the idea of a decision log—he drew inspiration from Philippe Kruchten’s decision logs and the writing style of software patterns—but he advocated for something new: a lightweight document focused on the decision itself, compatible with agile methods.

From there, the format evolved in stages:

2011 2012 2017 2022 2024 Nygard cunha o "ADR" Y-Statements Zimmermann · SATURN MADR Kopp & Zimmermann "Any Decision" MADR 3.0 renomeia MADR 4.0 + YADR (2026)
FIG 2. Fifteen years of evolution: the format has become more structured, but Nygard’s principle has remained virtually unchanged.

In 2012, Olaf Zimmermann introduced the Y-Statements (or (WH)Y-statements)—an entire decision encapsulated in a single structured sentence, created because project sponsors were asking for “one decision per slide.”

In 2017, MADR (Markdown Architectural Decision Records) was created by Oliver Kopp and Olaf Zimmermann, transforming the format into Markdown sections—which are easier to read and version control than the long sentence of the Y-Statement.

And here’s the most interesting conceptual shift. In 2022, in version 3.0, the MADR project was renamed from “Markdown Architectural Decision Records” to “Markdown Any Decision Records,” in line with the informal movement dubbed “ADR = Any Decision Record?” The premise: there is an endless debate about what is “architecturally significant”—so, rather than quibbling over that boundary, it’s better to acknowledge that any important decision deserves to be recorded in a structured way.

A nuance that almost every article gets wrong

In 2024, version 4.0 of MADR was renamed “Markdown Architectural Decision Records.” The acronym remains MADR, and the template continues to serve as a way to document any decision—only the label has changed. In other words, “Any Decision Record” is less of a product and more of a philosophy of use.

Why Use It — and an Honest Caveat

There are four benefits that are reported most consistently:

  • Preserve the "why," not just the "what." A pull request title states what has changed. The ADR explains why that was the right solution at the time, what constraints applied, and what was ruled out.
  • Speed up onboarding. Knowledge that is typically "institutional" and resides in the minds of only a few becomes something that can be read in chronological order.
  • Avoid blind acceptance and reversal. Nygard’s original goal: those who come later don’t have to either accept or overturn a decision without understanding the reasoning behind it.
  • Resilience and traceability. The log shows how the system and its trade-offs have evolved over time as the business changes.

The practice carries market weight. The ThoughtWorks Technology Radar placed “Lightweight Architecture Decision Records” in the Adopt ring—its strongest recommendation. AWS recommends ADRs in its Prescriptive Guidance, and the Azure Well-Architected Framework also highlights them.

“Excessive documentation can be replaced by readable code and tests. But in a world of evolutionary architecture, certain design decisions need to be documented—for the future team and for external oversight.”—paraphrase of the “Adopt” verdict from the ThoughtWorks Technology Radar

Anatomy of an ADR

Nygard’s original template is minimalist and remains the most widely used. It essentially consists of five parts.

ADR-0007 · usar-fila-para-webhooks.md 01 · TÍTULO 02 · STATUS 03 · CONTEXTO 04 · DECISÃO 05 · CONSEQUÊNCIAS Frase curta que resume o problema e a solução Proposto · Aceito · Descontinuado · Substituído As forças em jogo: técnicas, políticas, sociais, de prazo "Vamos / decidimos…" — a escolha em si, em voz ativa O que muda depois — efeitos bons e ruins, sem maquiar
FIG 3. The five sections of the Nygard framework. Variations include "Options Considered" and "Decision-Makers."

A golden rule of writing: follow the inverted pyramid of journalism—put the most important information first. Anyone opening the document should understand the decision within the first few lines and only delve into the details if necessary. For the context section, it’s worth quoting Nygard’s description: the “forces at play, including the technological, political, social, and local aspects of the project.”

Status and Immutability

Here’s the key difference between a reliable log and a folder of drafts: an accepted ADR is immutable. Only its status changes. If reality changes, you don’t rewrite the old record—you create a new ADR that replaces the previous one, and mark the old one as “replaced,” with a link to its successor.

Why? Because that way, the record never becomes “outdated.” Even a decision that is no longer valid today was once true—and that dated truth is precisely the information you want to preserve.

PROPOSTO em discussão (PR) ACEITO imutável a partir daqui SUBSTITUÍDO → aponta p/ novo ADR DESCONTINUADO não vale mais "Rejeitado" também é um destino válido a partir de Proposto.
FIG 4. The minimum status flow. Once accepted, the content is locked; only new ADRs can change the course.

The Three Essential Templates

There are dozens of formats—Joel Parker Henderson’s repository includes more than twenty. But in practice, three of them cover 95% of the cases.

TemplateFormIt shines when…
NygardShort sections: Title, Status, Background, Decision, Consequences.You want the minimum viable version and a commit message that’s easy to distinguish in Git.
MADRMarkdown with YAML; adds “Options Considered” with pros and cons, decision factors, and confirmation. Available in full and minimal versions.The decision involves real alternatives that need to be compared side by side.
Y-StatementA structured sentence: context → concern → choice → to achieve → by accepting → because.You need something that can be presented “on a slide” to management.

The Y-Statement Template

It’s worth keeping the structure, because it’s a great mental exercise even when you use a different format:

# Y-Statement (Zimmermann)
In the context of ,
facing ,
we decided on 
and ruled out ,
to reach ,
accepting ,
because .

As a historical footnote: there is even a variant of YAML today (called YADR), designed to be processed by tools, and the international standard ISO/IEC/IEEE 42010 suggests nine pieces of information for recording decisions.

Two complete examples

Enough theory. Let’s look at the same idea applied to two different areas: a software decision (Nygard format) and an operations/RevOps decision (MADR format)—to illustrate how ADR moves beyond architecture and becomes Any Decision Record.

ADR-0007 · Nygard Accepted

Process incoming webhooks by message queue

Context
Third-party integrations trigger spikes in webhooks. The current synchronous processing slows down response times and misses events when the provider does not receive a quick 200 response.
Decision
We will receive the webhook, persist the raw payload, and return a 200 immediately, processing it asynchronously via a queue (SQS). The endpoint only validates the signature and queues the request.
Consequences
  • Positive: resilience to spikes, reprocessing via replay, stable response latency.
  • Negative: Processing is no longer immediate; we need to design for idempotency and a dead-letter queue (DLQ).
DR-0012 · MADR (Any Decision Record) Accepted

Adopt data-driven attribution instead of last-click

Context and Problem
The last-click model attributes 100% of the conversion to the last touchpoint and obscures the role of the top and middle of the funnel. This distorts the CAC by channel and leads to budget cuts for channels that contribute to the conversion.
Options Considered
  • Last-click — simple, but biased toward the bottom of the funnel.
  • Linear / time-decay — distributes credit, but with arbitrary weights.
  • Data-driven — uses customer journey history to estimate the actual contribution of each touchpoint.
Decision outcome
We chose data-driven attribution because we have sufficient conversion volume for the model to be stable, and the gain in budget allocation outweighs the loss of simplicity. We accept the reduced transparency of the calculation and the need to retrain the team on how to read the reports.
Decision-makers
Head of Growth, Head of Data. Review in 90 days

Beyond Architecture: Any Decision Record

Once the team gets used to documenting decisions, the format naturally spreads beyond engineering. MADR itself affirms this premise: since there is endless debate about what is “architecturally significant,” it is best to document any important decision in a structured way.

Registro de Decisão Arquitetura banco, fila, API Design System tokens, componentes RevOps atribuição, scoring Produto pricing, escopo Processo SLA, governança Mesma estrutura: contexto · opções · decisão · consequências. "Não leve o termo 'arquitetura' a sério demais." — adr.github.io
FIG 5. The same model applies to any field where important decisions need to withstand staff turnover.

This isn’t just a theory—there are specific precedents. ThoughtWorks documented its Design System Decision Records: borrowing the idea of ADRs to document design system decisions with research and experiment results, which reduced onboarding time and aligned teams. This is precisely the path the next three sections take—moving beyond engineering and adapting this approach to marketing, sales, and process decisions.

The Business Decision Log

Marketing, sales, and operations teams suffer from the same amnesia as engineering—only worse, because almost nothing is versioned. Why did the standard discount become 15%? Why did we stop investing in that channel that seemed to be doing well? What was the definition of MQL before someone changed it in the middle of a meeting? This knowledge usually resides in the minds of two or three people and disappears along with them. The Business Decision Record—let’s call it BDR—is the same as an ADR, with the terminology adjusted to be more accessible to non-technical audiences.

There are few changes to the technical format, but they matter. Business decisions typically involve more people and a metric to track. So the template gains two fields—who made the decision and who was consulted, and which metric will indicate whether the decision was correct—and retains everything else, including the golden rule: an accepted record is immutable; if it changes, a new one is created to replace the previous one.

BDR-NNNN · Proposed Business Template

<Present tense verb + the decision in one line>

Context and Problem
What’s happening and why we need to decide now. Facts, not opinions.
Options Considered
The actual alternatives that were on the table—including “do nothing,” when applicable.
Decision Criteria
What influenced the choice: CAC, payback, implementation effort, risk, impact on the team.
Decision
The choice, stated in the active voice, and the trade-offs we are accepting by making it.
Who Decided · Who Was Consulted
The person responsible for the decision and those whose input was sought. This prevents the question “Who approved this?” six months later.
Expected impact and metric
The metric we’ll track and the target. Without this, no one knows if the decision worked.
Review date
When to review it again—usually tied to the business cycle (30, 60, 90 days).

Where to store them when the team isn’t technical. Developers leave ADRs in Git, alongside the code. For marketing and sales, this usually creates more friction than value. Use a database in Notion or Confluence, or a folder in Google Drive with one document per decision and a numbered index. The format is secondary; what’s essential is: one decision per entry, sequential numbering, immutability, and a link from the place where the decision is applied—the dashboard, the playbook, or the field description in the CRM.

Decision Tree by Area

Not every choice becomes a record—only those that “carry weight,” the ones someone will question down the road. These are the most common candidates outside of engineering, along with the metric that’s typically at stake:

AreaDecisions Worth NotingIn-Game Metrics
MarketingAttribution model; budget reallocation across channels; campaign naming convention; positioning/message pivot; selection of an automation platform.CAC, ROI by channel, conversion rate.
Marketing / SalesDiscount policy; pricing and bundling; definition of ICP; segmentation and territories; change in the commission plan.Average ticket, win rate, sales cycle, CAC payback.
RevOps / ProcessesSLA and handoff between marketing and sales; lead routing rules; definition of funnel stages in the CRM; approval workflow; data governance.MQL conversion rate, time to first contact, funnel leakage.
Product / PricingRelease scope; billing model; what’s included in Plan X vs. Plan Y; discontinuing a feature.NRR, churn, growth rate.
Data / ToolsSupplier selection (CRM, CDP, BI); single source of truth for a metric; stack consolidation.Cost per seat, adoption, data quality.

Three Business Decisions in Practice

The same criteria, applied to three decisions that every go-to-market team ends up making—and almost never documents.

BDR-0003 · Process (RevOps) Approved

Redefine MQL and the follow-up SLA between marketing and sales

Context and Problem
Sales says MQLs aren’t converting; marketing says leads go cold without follow-up. There is no shared definition or agreed-upon timeline—each side operates by its own rules.
Decision
An MQL is now defined as a lead with a score ≥ 60 and confirmed ICP fit. Sales takes the first contact within 24 business hours; leads not followed up on within 48 hours automatically return to the nurturing pipeline.
Who Decided · Who Was Consulted
Head of Marketing and Head of Sales (joint decision); RevOps consulted regarding the routing rule.
Expected Impact and Metrics
Track MQL acceptance rate and time to first contact. Goal: acceptance rate ≥ 70%. Review in 60 days
BDR-0008 · Commercial— Accepted

Switch from a single price to three plans (Good / Better / Best)

Context and Problem
The single price repels both extremes: it seems expensive to small businesses and cheap (not robust enough) to enterprises. There is no value anchor to guide the choice.
Options Considered
  • Keep the single price—simple, but without an anchor.
  • Two plans — slightly improves the perception of value.
  • Three plans with the middle one as the recommended option—uses the anchoring effect.
Decision
Three plans, with the middle one highlighted as recommended. We accept the increased complexity of communication and the need to reposition the entire pricing page.
Expected Impact and Metrics
Average ticket and upgrade rate between plans. Review in 90 days
BDR-0011 · Marketing / Operations Replaced

Consolidate email and automation into a single platform

Context and Problem
Two overlapping tools drive up the cost of the stack and disrupt attribution, because leads move between them without a single trace.
Decision
Migrate everything to Platform A within 60 days and shut down Platform B after validation. We accept the cost of the migration and the risk associated with the transition period.
Expected Impact and Metrics
Monthly stack cost and end-to-end attribution integrity.
Note
Replaced by BDR-0019, which reversed part of the consolidation following a vendor pricing change—an example of why old records are not deleted: they explain the process.

Why This Is a Sign of RevOps Maturity

A predictable funnel depends on consistent decisions—and decisions are only consistent when someone can confidently explain why the current rule exists. The decision log transforms fragile “institutional knowledge” into an asset that survives team turnover, onboarding, and the next tool switch.

Tools

You don’t need any software to get started—a text editor and the right folder are all you need. But as the log grows, some tools can be helpful:

  • adr-tools — Bash scripts by Nat Pryce for creating and managing ADRs in the Nygard format. The classic starting point.
  • Log4brainsdocs-as-code knowledge base: you write ADRs in the editor, and the tool publishes a static website with a timeline and search functionality. Runs on npm install -g log4brains and log4brains init.
  • ADR Manager — a VS Code plugin and web app (connects to a GitHub repository) for creating and editing MADRs using a form.
  • dotnet-adr · pyadr — CLIs for the .NET and Python ecosystems.
  • adr.zone — a web generator that supports multiple formats (Nygard, MADR, Y-Statement).
  • Intelligence — Incuca’s AI-first software for RevOps teams, designed to document decisions and track metrics and results in real time

Best practices and anti-patterns

Do

  • Write it down right when you make the decision, not weeks later—the context fades quickly.
  • Record the decisions "that carry weight," not the trivial ones or the cosmic ones. "We chose Tailwind over Bootstrap" rarely matters; "we store session state in the database instead of in memory" matters a lot.
  • Use pull requests for review. The proposed ADR is submitted as a PR; the discussion takes place there; merging into the main branch means "accepted."
  • Code links to the ADR. A short comment at each architectural "seam," pointing to the record, makes the document appear exactly when it's needed.

Avoid

  • Turn the ADR into a changelog. It doesn't replace good commit messages or record every little change.
  • Rewrite accepted records. Has the decision changed? Create a new ADR, and mark the old one as superseded.
  • "Documentation theater." Without a review schedule and without the team's trust, the log becomes write-only and dies. The difference between those who maintain ADRs for years and those who abandon them isn't the template—it's the operation.

AI: Write, Search, and Don’t Get Overwhelmed

The two main reasons a team doesn’t keep decision logs have always been: writing them is a hassle, and finding the right log later is even more of a hassle. Generative AI tackles exactly these two issues—and that’s why it changes the economics of the practice. But it’s important to distinguish between what it solves and what it doesn’t, because that’s where the pitfall lies.

Humano decide trade-offs, discordância IA rascunha o registro do código, da call, do Slack Log de decisões imutável, numerado IA recupera (RAG) "por que escolhemos X?" captura / rascunho versiona busca em linguagem natural contexto p/ decidir IA move as setas. O humano é dono das caixas.
FIG 6. AI speeds up data capture and retrieval. Decision-making and the reasoning behind it remain human.

Axis 1 — Writing: From the “real kernel” to the draft

The approach that has worked isn’t to ask, “Write a record from scratch,” but rather to start with a single sentence—the real core"decidimos X porque Y" — and letting the AI expand it into the full report using its template. Agents can read code, a pull request diff, a meeting transcript, or a Slack thread and return a first draft with context, options, and consequences already filled in. In the business world, this means turning Friday’s RevOps call into a BDR draft before the context fades away.

Axis 2 — Search: this is where “too much documentation” stops being a problem

This is the point you raised, and it’s the most underestimated one. The fear of maintaining a large log has always been: “No one is going to read 200 records.” With enhanced retrieval (RAG) on the log, you don’t read it—you query it. “Why did we change the attribution model?” returns the two or three entries that matter, along with the reasoning, instead of an intimidating folder. The volume ceases to be a liability and becomes a searchable asset. Too much documentation only becomes a problem when the only way to access it is by reading everything.

It’s a two-way street: the log also feeds the AI

There’s an elegant symmetry here. A well-maintained decision log is exactly the kind of reliable, dated source that helps assistants and code agents make better decisions—it’s high-quality context, not noise. By 2026, this had become a topic of open debate: the decision log (the historical, passive “why”) coexists with instruction files for agents, such as AGENTS.md (the active “what needs to be true”). They do not compete: the log explains the choice; the instruction file ensures the AI adheres to it in practice.

The Trap

The bottleneck of good documentation has never been typing—it’s been thinking. Writing forced the team to confront trade-offs and bring disagreements to the surface. If AI writes and no one reviews it, you trade “too little documentation” for “plausible but empty documentation”—and, at scale, this is the documentation charade from the previous section, only automated and faster. The rule: AI drafts and revises; humans decide, confirm, and sign off. It’s even worth noting who made the decision—a person or an agent.

Note that the discipline changes form; it doesn’t disappear. Before, the work was writing. Now that content generation has become inexpensive, the work is curation: deciding what deserves to be recorded, confirming the reasoning, and marking what has been surpassed. AI doesn’t eliminate judgment—it focuses it on the part that has always mattered.

How to Get Started in 5 Steps

  1. Write ADR-0001 about adopting ADRs. Seriously: the first log entry is usually the decision to use ADRs. This already tests the format and documents the choice itself.
  2. Choose a template. Start with Nygard (minimal) or MADR minimal (if you frequently compare options). You can switch later.
  3. Define the location. Create docs/decisions/ in the main repository and combine the sequential numbering.
  4. Set up the process. Proposed ADRs are submitted via PR; reviewed by those affected; merge = accepted. Set aside 15 minutes during a recurring meeting to review the "proposals."
  5. Make your first real decision count. Pick a choice that the team will question six months from now and record it today. A log with five good entries is already better than nothing.

Rule of thumb

If, six months from now, someone asks, “Why on earth is this the way it is?”, the answer should be just a search away in the repository. That’s the test to determine whether a decision warrants an ADR.

Frequently Asked Questions

Does ADR stand for "Architecture" or "Any" Decision Record?

Both. The term originated as Architecture Decision Record (Nygard, 2011). The “Any Decision Record” movement is an extension of its use: the same format applies to any important decision, not just architectural ones. The MADR project officially adopted “Any” in version 3.0 (2022) and reverted to “Architectural” in 4.0 (2024)—what changed was the label, not the concept.

What is the difference between an ADR and an RFC?

An RFC (Request for Comments) is a proposal document, usually longer, used to gather feedback before making a decision. An ADR is a concise record of the decision made, including its context and consequences. Many teams use both: the RFC to deliberate, and the ADR to finalize the outcome.

Won’t ADRs become outdated?

No, not if you respect immutability. An accepted ADR is a dated snapshot: it was true at that moment. When reality changes, you create a new ADR that replaces the old one. The entire log remains valid as history—no one edits the past.

Who should write the ADRs?

Whoever makes the decision. In a decentralized approach (ThoughtWorks’ “architecture advice process”), anyone can make a decision as long as they seek advice from those affected and those with expertise—and record the result in an ADR. It doesn’t have to be a single, centralized architect.

How many ADRs should a project have?

There’s no set number. The sign of a healthy process isn’t volume; it’s trust: does the team trust that the decisions that carry the load are documented? Five good records are worth more than fifty trivial ones that no one reads.

Start small. Open a file, type ADR-0001, and make sure the next “Why is it like this?” question has an answer. The rest is just repetition.

From Unplanned Decisions to Predictable Operations

A memory-independent funnel doesn’t happen by chance—it’s built. InCuca helps marketing and sales teams transform fragile knowledge, trapped in the minds of a few, into a documented, automated, and AI-ready RevOps operation. From attribution to lead scoring, from the handoff between marketing and sales to pricing: we structure the decisions that underpin your funnel and build the automation that keeps them alive.

Want to stop rethinking the same things every quarter? Let’s talk →

Sources and Further Reading

References consulted · accessed in June 2026

  1. Michael Nygard. “Documenting Architecture Decisions”—the 2011 essay that coined the term.
  2. Martin Fowler. Architecture Decision Record (bliki).
  3. ADR GitHub organization. adr.github.io — definitions, templates, and tools.
  4. MADR: Markdown Architectural/Any Decision Records and release history.
  5. Olaf Zimmermann. Architectural Decisions — The Making Of and Y-Statements.
  6. ThoughtWorks Technology Radar. Lightweight ADRs (Adopt) and Design System Decision Records.
  7. Red Hat. Why You Should Be Using Architecture Decision Records.
  8. GDS Way. Documenting architectural decisions.
  9. Thomas Vaillant. Log4brains — a tool for managing and publishing ADRs.
  10. Joel Parker Henderson. Collection of ADR templates and examples.
  11. Software Improvement Group. Using ADRs to guide your architecture choices.
  12. Hidekazu Konishi. ADRs: Templates and Operational Patterns.
Samuel Adiers Stefanello

Samuel Adiers Stefanello

Incuca Community

Want to go deeper on this topic?

Join the Incuca community and exchange experiences with others who are also turning data into action.

Join the community