← All decisions

1. Record architecture decisions

Date: 2026-07-15

Status

Accepted

Context

Decisions on a polyglot project get made once and questioned forever. Six months from now, someone will ask why the contract is a single YAML file and not one per backend, and "it felt right at the time" is not an answer that survives a code review.

Decision

We record architecturally significant decisions as ADRs, in the style described by Michael Nygard. Each ADR is a short markdown file, numbered sequentially, immutable once accepted. A decision that changes gets a new ADR that supersedes the old one; we do not edit history to make ourselves look prescient.

Consequences

  • The reasoning behind a decision outlives the person who made it.
  • New contributors read docs/adr/ and understand the shape of the project without a meeting.
  • There is a small tax on making decisions: you have to write them down. This is a feature.