Files
hq/03-DESIGN/01-to-be
jschoubben dcc4b8339c Say who consumes the broker and who writes the registry
Left implicit by the previous commit, which said the owning context writes
without saying what does the consuming.

The control plane is the consumer, and there is one of it. Seven contexts but
one deployable, so it is one process dispatching internally rather than seven
consumers racing -- which matters because the as-is records two consumers
accidentally sharing a queue and silently splitting the traffic, each getting
half of what it expected. With one consumer that cannot arise.

The broker is also the buffer while the control plane is down: nodes keep
publishing, messages queue, the control plane drains them on return. That is
what makes a single control plane tolerable -- an outage delays the mesh's
knowledge rather than losing it.

One consequence named because it will otherwise be discovered: an unbounded
queue grows until the broker's disk is full, and the broker is the component
every node depends on. The bound is per queue and undecided -- dropping the
oldest health report is obviously right, dropping the oldest declaration
acknowledgement is not.
2026-08-27 22:20:03 +02:00
..
2026-08-27 21:16:44 +02:00

03-DESIGN / 01-to-be

The mesh being built toward. Every statement here traces to a record in 02-DECISIONS/; nothing arrives by drafting.

A document here describes an intention. What currently runs is in 00-as-is/, and the two are never merged — when something ships, the as-is document is written and this one's status becomes implemented.

Document Covers Rests on
00-work-breakdown.md How the decomposition gets built, in what order, and where a human must look ADR 0015
01-end-to-end-testing.md The lab: a real mesh a change can be run against before it reaches nodes ADR 0016, 0029
02-scenario-declaration.md What a scenario declares — the underlay, and what to place on it ADR 0031
03-scenario-lifecycle.md What happens to a scenario — raise, snapshot, restore, move, destroy ADR 0032
04-lab-installation.md Getting the lab onto a clean machine, and why it verifies capability rather than installation ADR 0008
05-the-node-host.md Tier 0 — the one thing installed by hand, and the only thing that changes a machine ADR 0037
06-the-control-plane.md Tier 2 — what the term means, and the test for what belongs in it ADR 0037
07-the-substrate.md Tier 1 — what the control plane consumes and cannot grant itself ADR 0038, 0048
08-connectivity.md One context in full — overlay, resolution, exposure, filtering, certificates ADR 0049, 0050, 0051, 0055
09-the-node-lifecycle.md How a machine becomes a node, stays one, and stops being one ADR 0038, 0051

Not yet written

  • The remaining six contexts. ADR 0055 settles the list at seven; connectivity is the first written in full (08) and the other six do not exist yet. The work breakdown says in what order they are needed.
  • Domain grouping outside the core. Not needed. ADR 0017 is superseded by ADR 0044: there is no domain module to group into, so there is no domain list to settle. Relationships are edges, and grouping is a tag and a query.