Skip to content

Architecture Decision Records

Decisions that would be expensive or impossible to reverse later, recorded with the alternatives that lost and the reason they lost.

ADR Decision Status
0001 Modular monolith with detached workers, not microservices Accepted
0002 Point-in-time correctness enforced by API shape, not developer discipline Accepted
0003 Deterministic calibrated aggregation; the LLM explains rather than scores Accepted
0004 Compliance is a terminal gate, not a weighted signal Accepted
0005 Untrusted content quarantined by capability removal, not by prompt instruction Accepted
0006 Local-first inference with gateway-enforced redaction Accepted
0007 No AI component may reach the broker Accepted

When to write one

Write an ADR when a change alters a component boundary, a data contract, a compliance rule, or a security control — or when someone would reasonably ask "why is it done this way?" six months from now. Everything else is a normal commit.

Format

Context (the forces in tension) → Decision (what we chose) → Rationale (why, including what was rejected) → Consequences (positive, negative, and accepted risk).

State the negative consequences honestly. An ADR that lists only benefits is advocacy, and it is useless to the person who later has to decide whether the decision still holds.