Technical leadership

Architecture decision records: the habit I bring to every engagement

The most expensive question in any engineering team is "why did we do it this way?". Architecture decision records answer it in two minutes instead of two meetings. Here is how I use them.

EssaySumanta Mukhopadhyay7 min read5 sources
#leadership#fractional-cto#strategy#governance
ESSAY · TECHNICAL LEADERSHIP19 Oct 2026 · 00:30 GST

In almost every team I have worked with, I hit the same wall early on. Someone asks why the system uses a particular database, queue or cloud service, and the honest answer is "the person who decided left". The decision might have been right. Nobody can tell, because the reasons left with them.

Architecture decision records, or ADRs, are the cheapest fix I know for this. They are also the habit that makes my own exit clean.

What an ADR is

The idea comes from a short 2011 post by Michael Nygard. Record each architecturally significant decision in a small document with a title, the context, the decision, its status and its consequences15. Consequences include the downsides, not just the benefits5.

Two rules make the format work. First, records are short: one decision, one page. Second, they are immutable. When a decision changes, you write a new record that supersedes the old one and link them, rather than editing history2.

The practice spread widely. Thoughtworks put lightweight ADRs in the Adopt ring of its Technology Radar, recommending they live in source control as simple markup rather than in a wiki3.

The template I use

# ADR-014: Use an event-driven core for order processing

Status: Accepted (supersedes ADR-006)
Date: 2026-10-19
Deciders: CTO, platform lead, payments lead

## Context
Synchronous calls between order, payment and inventory
services cause timeouts at peak and cascading failures.

## Decision
Move order state changes to events via a transactional
outbox. Consumers are idempotent.

## Consequences
+ Peak load absorbed by queues; services fail independently
+ Clear audit trail of state changes
- Eventual consistency; UI must handle "processing" states
- New operational skills needed for the broker

## Options considered
1. Scale the synchronous services (rejected: cost, still coupled)
2. Event-driven core (chosen)

I add two sections to Nygard's original. Options considered shows the decision wasn't a default. Deciders makes ownership explicit. The example comes from the pattern in my post on idempotent payment and order pipelines.

Why I insist on them as a fractional CTO

  • Decisions get faster. Writing the context and options forces clarity. Half the debates end when someone writes down what the options actually are.
  • Disagreement becomes productive. People argue with a document, not with each other. Review comments on an ADR pull request are calmer than meetings.
  • New hires ramp up faster. Reading twenty ADRs explains a system better than any onboarding deck.
  • Handover is built in. When I step back, the reasoning stays. That matters more for a part-time leader than for anyone.
  • Due diligence gets easier. Investors and acquirers can see that decisions were deliberate. I look for ADRs in every technical due diligence I run.

What counts as "architecturally significant"

Not every choice needs a record. My rule of thumb is to write one when a decision is expensive to reverse, affects more than one team, or will make someone ask "why?" in a year. In practice:

  • Choosing a database, queue, cloud provider or core framework.
  • Adopting a pattern across services: events, multi-tenancy, an AI gateway.
  • Security, compliance and data-residency choices.
  • Choosing an AI model provider, or deciding to run models locally.
  • Deliberately accepting technical debt, with the conditions for paying it back.

Making the habit stick

  1. Keep them in the repository, in a docs/adr folder, numbered.
  2. Review them like code. An ADR is a pull request with reviewers.
  3. Write them at decision time, not afterwards. A reconstructed ADR loses the alternatives that were rejected.
  4. Link from code. A comment pointing to ADR-014 above a surprising piece of code saves an hour of archaeology.
  5. Revisit quarterly. Mark superseded records, and check whether accepted debt has been repaid.

Red Hat's guidance makes a similar case for treating ADRs as a lightweight, continuous practice rather than a documentation project4.

ADRs for AI decisions

AI systems make this even more important. Which model, which retrieval approach, which guardrails, which data may be sent to a hosted provider: these choices change often and carry real risk. An ADR trail gives you the documentation that regulations increasingly expect, such as the EU AI Act's emphasis on technical documentation, which I cover in the EU AI Act after the Digital Omnibus.

How I can help

As a fractional CTO I set up decision records and architecture governance in the first month, and leave a team that owns its decisions. Or analyse your challenge and bring the result to a call.

References
  1. 1
    Documenting Architecture DecisionsMichael Nygard, Cognitect blog · 15 Nov 2011
  2. 2
  3. 3
    Lightweight Architecture Decision RecordsThoughtworks Technology Radar
  4. 4
  5. 5
FAQ

Common questions

What is an architecture decision record?

An ADR is a short document that records one significant technical decision: the context, the decision itself, its status and its consequences. The format was popularised by Michael Nygard in 2011.

Where should ADRs live?

In source control next to the code, in plain text or Markdown, so they are reviewed like code and stay close to what they describe. Thoughtworks recommended this over keeping them in a wiki.

What happens when a decision changes?

You don't edit the old record. You write a new ADR that supersedes it and link the two, so the history of why things changed stays readable.

Keep reading

Related

Open to advisory, fractional CTO & select builds

Let's talk about what you're building.

The fastest route is a free 30-minute call. Prefer to write? Send a message and I'll reply personally within two business days.

Start a conversation

How would you like to reach me?

Book a 30-min callFastest. Pick any open slot on my calendar.→ Write in GmailOpens a pre-filled draft in your browser.→ Use my email appOutlook, Apple Mail or your default client.→

I reply personally within two business days. US & UAE time zones.