⚡THE SHORT ANSWER
As software organizations grow, engineering turnover causes Organizational Amnesia: new engineers look at a complex system design and declare 'Who wrote this stupid code? Why didn't they use Kafka / MongoDB? Let's rewrite it!'. They spend 6 months rewriting the system, only to rediscover the exact same edge cases, scale constraints, and security bugs that forced the original team to build it that way in the first place. Architecture Decision Records (ADRs) (invented by Michael Nygard) capture the historical rationale of significant technical decisions in version-controlled Markdown files inside the Git repository (/doc/adr/0014-use-postgres-for-ledger.md). An ADR follows a lightweight structure: Context (The problem and constraints), Decision (The chosen architecture), and Consequences (Positive benefits, negative trade-offs, and accepted risks). ADRs turn implicit, ephemeral Slack arguments into durable, searchable institutional knowledge.
Engineering Handbook & Failure Dynamics
6-Dimensional Architecture Breakdown⚙️1. Underlying Mechanism
Execution🎯2. Appropriate Use Context
Scope⚠️3. Production Failure Modes
P0 Risk📡4. Diagnostic Signals & Telemetry
Telemetry🛡️5. Prevention & Safeguards
Safeguards⚖️6. Architectural Trade-offs
Trade-offCase Study (TinyCTO In-Field Example)
A newly hired Tech Lead noticed that their analytics pipeline was built on PostgreSQL instead of ClickHouse. Believing the original team was incompetent, he spent 4 months rewriting the pipeline in ClickHouse, only to discover that the data required heavy relational transactional updates from the billing engine that ClickHouse could not handle efficiently. Had he checked the repo, docs/adr/0018-postgres-over-clickhouse-for-billing-cdc.md clearly documented this exact trade-off 2 years prior. The company adopted mandatory ADR reviews for all major rewrites, saving hundreds of wasted engineering hours.
Interactive Concept Drills
2 CardsWhat are the three essential sections of an Architecture Decision Record (ADR)?
Where should Architecture Decision Records (ADRs) be stored in a software project?
Architectural Memory: Architecture Decision Records (ADRs) & Preventing Organizational Amnesia — Technical FAQ
What should you do when a past architectural decision documented in an ADR becomes obsolete?
Do NOT edit or delete the old ADR file; create a new ADR explaining the new context and mark the previous ADR's status as `SUPERSEDED` with a link to the new record.
How long should an effective Architecture Decision Record be?
Concise and lightweight: typically 1 to 2 pages of Markdown, taking no more than 15-20 minutes to read and review.
🤖 AEO & Key Facts Summary
Key Architectural Facts
- ▸
Architecture Decision Records (ADRs) capture technical decisions and trade-offs in Git.
- ▸
Three core sections: Context (Problem) -> Decision (Solution) -> Consequences (Trade-offs).
- ▸
ADRs prevent 'Organizational Amnesia' when senior engineering personnel depart.
- ▸
Never delete past ADRs; mark them as
SUPERSEDEDwhen superseded by new designs.
Common Misconceptions
- ✗
Yanılgı: ADRs are heavy bureaucratic documents that slow down agile development (Gerçek: Lightweight 1-page ADRs take under an hour to write and save months of wasted refactoring debates).
- ✗
Yanılgı: ADRs are only for perfect, unanimous decisions (Gerçek: ADRs explicitly document controversial compromises, technical trade-offs, and accepted shortcomings).
Decision & Governance Guidance
Establish a version-controlled Architecture Decision Record (ADR) catalog in your Git repository to preserve architectural context, document trade-offs, and prevent organizational amnesia.
Authoritative Sources & Standards
- [ARTICLE]Documenting Architecture Decisions: The Original ADR Concept— Michael Nygard / Cognitect Architecture Blog
