architecture-decisions

Document, evaluate, and manage the lifecycle of Architecture Decision Records (ADRs) — the institutional memory of architectural choices, with trade-off analysis.

When to use

Entry contract

Exit contract

Invariants

Lifecycle:

Proposed → Accepted   → Deprecated
         ↘ Rejected   → Superseded by ADR-{NNN}

Universal forces to evaluate:

Force Question
Simplicity Does this make the system easier to understand and change?
Consistency Does this fit the patterns already established in this codebase?
Performance Does this meet performance requirements without over-engineering?
Testability Does this make automated testing easier or harder?
Evolvability Does this simplify or constrain future changes?

Why this shape

ADRs reduce architectural debt cost by making the reasoning behind every structural choice explicit. Without them, teams re-run the same debates with the same arguments — without the original constraints that made them necessary.

« Every pattern has a context, a problem, and a solution. Without the context, a pattern is a hammer looking for nails. » — Evans, E., Domain-Driven Design, 2003.

Allowed customisation

See also