MADR Template
The MADR 3.0 template that Nexus ADRs follow, with section-by-section guidance.
View template →How to record architectural decisions in Nexus
Nexus spans multiple services (gateway, control-plane, auth, policy, ingest, audit, query, console, admin), two data stores with distinct consistency models (Postgres and ClickHouse), and a shared-crate boundary with Aegis governed by vortex-common-crates/contracts/shared-crates.md. Decisions that affect any of these surfaces need to be discoverable, reviewable, and stable across years. Informal discussion notes, Slack threads, and MR descriptions lose their context the moment the original participants rotate out.
The Helicone reference implementation studied in Helicone: Lessons Learned has 240+ Postgres migrations and 80+ ClickHouse migrations — visible evidence of reactive design without a decision trail. We do not want to repeat that pattern.
docs/decisions/ — canonical, well-supported template; files are small and diff-friendly.Chosen option: MADR 3.0 ADRs under docs/decisions/.
Filenames are NNNN-short-title.md with NNNN a zero-padded, monotonically increasing integer. Numbers are never reused, even for superseded ADRs. The next available number is reserved by opening a draft MR that creates the file.
Required sections (per MADR 3.0):
## Context and Problem Statement## Decision Drivers (optional but encouraged)## Considered Options## Decision Outcome## Consequences## More Information (optional)Status values: Proposed, Accepted, Rejected, Deprecated, Superseded by ADR-NNNN.
The four P0 ADRs (0000, 0001, 0005, 0011) land before the first platform-wide services merge. The backlog-listed ADRs (0002–0010) each merge with the feature that first requires the decision — see the backlog. This is deliberate: a decision authored long before its implementing code is a premature decision.
Proposed state.Accepted (or Rejected with a short rationale).Accepted state and flip the earlier ADR to Superseded by ADR-NNNN. The earlier ADR is not deleted.scripts/check-adr-references.sh enforces that the foundational ADRs exist and are linked from the README.MADR Template
The MADR 3.0 template that Nexus ADRs follow, with section-by-section guidance.
View template →ADR Backlog
The queue of planned ADRs and when each one is expected to land alongside its feature.
See the backlog →All ADRs
Every accepted, rejected, and superseded decision — browsable here or in the repo at docs/decisions/.
Browse ADRs →Lessons Learned
Why Nexus records decisions: schema-churn case studies from Helicone and Bifrost.
Read the case studies →