Decision log
Explanation · generated · the architectural decision record under `decisions/`, in order, never rewritten
Each record states its context, the decision and its consequences, and stays in place when a later record supersedes it. The index below is read from the files; the files are the record.
A non-obvious call (where something belongs, why a crate is shaped the way it is, anything a later contributor would otherwise reverse-engineer from a pull request) gets a new record rather than only an explanation in the pull request. Number it one past the highest present, and say in its body which earlier record it supersedes, if any. Numbers are never reused, so a gap is a retired record.
| ADR | Title | Status | Date |
|---|---|---|---|
| ADR-0008 | Envelope store layout version 1 | Superseded in part by ADR-0011 (2026-09-24) | 2026-09-24 |
| ADR-0011 | Envelope store layout version 2 | Accepted | 2026-09-24 |
| ADR-0013 | One shared-memory mechanism | Accepted | 2026-09-25 |
| ADR-0014 | Pre-integration crates say so | Accepted | 2026-09-25 |
| ADR-0015 | Ring header layout | Accepted | 2026-09-24 |
| ADR-0016 | Gated rings: one store per publish, one check per read | Accepted | 2026-10-04 |
| ADR-0017 | Partial crates say so, and the architecture check holds them to it | Accepted | 2026-10-17 |
| ADR-0018 | The security model: what is protected, by what, and what is not | Accepted | 2026-10-17 |
| ADR-0019 | A reader table for lossless fan-out | Accepted | 2026-10-17 |
| ADR-0020 | An index of recent cursors for the envelope store | Accepted | 2026-10-17 |