From 77a1493df4c569fc5ef8b1132deb03ae64e6c028 Mon Sep 17 00:00:00 2001 From: jochen Date: Sat, 26 Sep 2026 18:56:34 +0200 Subject: [PATCH] Renumber to 0116: another record took 0115 on main MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR #133 landed a different 0115 while this branch was open. The bus record is now 0116, with every citation in designs 19, 25, 28 and the index following it. Note: cycle.py and records.py both fail on main as merged, on that record — nothing cites it, and it rests on 0112, which is still proposed. Both pre-date this branch and are left for their own change. --- ...eps.md => 0116-the-bus-is-built-in-five-steps.md} | 2 +- 02-DECISIONS/README.md | 3 ++- 03-DESIGN/01-to-be/19-the-module-protocol.md | 4 ++-- 03-DESIGN/01-to-be/25-the-bus-on-nats.md | 8 ++++---- 03-DESIGN/01-to-be/28-building-the-bus.md | 12 ++++++------ 03-DESIGN/01-to-be/README.md | 4 ++-- 6 files changed, 17 insertions(+), 16 deletions(-) rename 02-DECISIONS/{0115-the-bus-is-built-in-five-steps.md => 0116-the-bus-is-built-in-five-steps.md} (99%) diff --git a/02-DECISIONS/0115-the-bus-is-built-in-five-steps.md b/02-DECISIONS/0116-the-bus-is-built-in-five-steps.md similarity index 99% rename from 02-DECISIONS/0115-the-bus-is-built-in-five-steps.md rename to 02-DECISIONS/0116-the-bus-is-built-in-five-steps.md index b980838..19a7319 100644 --- a/02-DECISIONS/0115-the-bus-is-built-in-five-steps.md +++ b/02-DECISIONS/0116-the-bus-is-built-in-five-steps.md @@ -7,7 +7,7 @@ reconstructed: false extends: 02-DECISIONS/0106-the-bus-is-nats.md --- -# 115. The bus is built in five steps, and the protocol moves with it +# 116. The bus is built in five steps, and the protocol moves with it ## Context diff --git a/02-DECISIONS/README.md b/02-DECISIONS/README.md index 09145ed..a70214a 100644 --- a/02-DECISIONS/README.md +++ b/02-DECISIONS/README.md @@ -132,7 +132,7 @@ python3 00-META/checks/index.py fail if stale - **0104** — [A provision may be answered by an adapter to the predecessor](0104-a-provision-may-be-answered-by-an-adapter-to-the-predecessor.md) - **0105** — [The mesh adopts the predecessor's tunnel in place](0105-the-mesh-adopts-the-predecessors-tunnel-in-place.md) - **0106** — [The bus is NATS](0106-the-bus-is-nats.md) -- **0115** — [The bus is built in five steps, and the protocol moves with it](0115-the-bus-is-built-in-five-steps.md) +- **0116** — [The bus is built in five steps, and the protocol moves with it](0116-the-bus-is-built-in-five-steps.md) ### Its tiers, from the bottom up @@ -198,6 +198,7 @@ python3 00-META/checks/index.py fail if stale - **0112** — [A module definition names no node, no mesh and no path: everything it needs is a requirement the mesh resolves](0112-a-module-definition-names-no-node-mesh-or-path.md) *(proposed)* - **0113** — [The vault makes every shared secret, a provider makes resources and data, and the mesh carries both](0113-the-vault-makes-every-secret.md) *(proposed)* - **0114** — [A credential two parties hold rotates over two credentials; one a single party holds rotates in place, staged; and retiring a credential never removes what it reached](0114-a-shared-credential-rotates-over-two-credentials.md) *(proposed)* +- **0115** — [One assignment of a module per node: the module's name is the assignment's identity](0115-one-assignment-of-a-module-per-node.md) ### How it is built diff --git a/03-DESIGN/01-to-be/19-the-module-protocol.md b/03-DESIGN/01-to-be/19-the-module-protocol.md index 5f37ac8..b95b42b 100644 --- a/03-DESIGN/01-to-be/19-the-module-protocol.md +++ b/03-DESIGN/01-to-be/19-the-module-protocol.md @@ -9,7 +9,7 @@ updated: 2026-09-26 decisions: - 02-DECISIONS/0095-the-control-plane-is-the-way-to-ask-a-module.md - 02-DECISIONS/0106-the-bus-is-nats.md - - 02-DECISIONS/0115-the-bus-is-built-in-five-steps.md + - 02-DECISIONS/0116-the-bus-is-built-in-five-steps.md - 02-DECISIONS/0074-the-wire-is-specified-not-the-types.md - 02-DECISIONS/0039-what-the-sdk-holds-and-refuses.md - 02-DECISIONS/0043-a-module-broker-account-is-scoped-by-emits-and-consumes.md @@ -40,7 +40,7 @@ describes current behaviour that is *not yet* specified-and-conformed, it says s > > Rewriting the wire sections onto the subjects and streams of > [design 25](25-the-bus-on-nats.md) §2–§3, and recapturing the fixtures there, is **step 3 of -> [ADR 0115](../../02-DECISIONS/0115-the-bus-is-built-in-five-steps.md)**. Until that lands, read +> [ADR 0116](../../02-DECISIONS/0116-the-bus-is-built-in-five-steps.md)**. Until that lands, read > the sections below for what two implementations may not disagree *about*, and design 25 for what > they will disagree about it *on*. A specification that silently described a retired transport > would be worse than an absent one, because it reads as current — hence this note rather than a diff --git a/03-DESIGN/01-to-be/25-the-bus-on-nats.md b/03-DESIGN/01-to-be/25-the-bus-on-nats.md index 77f70ca..6b92b3a 100644 --- a/03-DESIGN/01-to-be/25-the-bus-on-nats.md +++ b/03-DESIGN/01-to-be/25-the-bus-on-nats.md @@ -10,7 +10,7 @@ code: updated: 2026-09-26 decisions: - 02-DECISIONS/0106-the-bus-is-nats.md - - 02-DECISIONS/0115-the-bus-is-built-in-five-steps.md + - 02-DECISIONS/0116-the-bus-is-built-in-five-steps.md - 02-DECISIONS/0074-the-wire-is-specified-not-the-types.md - 02-DECISIONS/0079-the-foundation-seats-are-named-after-their-servers.md - 02-DECISIONS/0100-a-node-in-use-is-adopted-before-it-is-converged.md @@ -237,7 +237,7 @@ message body. A module built today runs on the new runtime without a rebuild — ADR 0039, and it is in §10. **The wire underneath it changes completely, and that is a specification, not an implementation -detail.** Revision, second review ([ADR 0115](../../02-DECISIONS/0115-the-bus-is-built-in-five-steps.md)): +detail.** Revision, second review ([ADR 0116](../../02-DECISIONS/0116-the-bus-is-built-in-five-steps.md)): an earlier draft of this section said "nothing new" and stopped there, which read as though the change were contained inside the runtime. It is not. [ADR 0074](../../02-DECISIONS/0074-the-wire-is-specified-not-the-types.md) settled that an SDK is an @@ -258,7 +258,7 @@ nothing is added to it here. ## 9. Moving from the bus the mesh has: five steps Per ADR 0106 the bus moves once. Per -[ADR 0115](../../02-DECISIONS/0115-the-bus-is-built-in-five-steps.md) the *build* is five steps, +[ADR 0116](../../02-DECISIONS/0116-the-bus-is-built-in-five-steps.md) the *build* is five steps, each ending at something §10 proves, so that no part of this waits on the whole of it. Dividing the build does not divide the bus: steps 1 to 4 leave every node on AMQP, and step 5 is still one rollout. @@ -382,7 +382,7 @@ to mapping the sdk contract onto subjects exactly as §8 says. ## 11. Open, for the review -**Closed by the second revision** (2026-09-26, [ADR 0115](../../02-DECISIONS/0115-the-bus-is-built-in-five-steps.md)): +**Closed by the second revision** (2026-09-26, [ADR 0116](../../02-DECISIONS/0116-the-bus-is-built-in-five-steps.md)): the build was one undivided item (§9 is now five steps, each with its own bed in §10); there was no adoption path for a mesh already running (§9 step 2); and §8 said a module sees "nothing new" without distinguishing the sdk's contract, which does not change, from the specified wire, which diff --git a/03-DESIGN/01-to-be/28-building-the-bus.md b/03-DESIGN/01-to-be/28-building-the-bus.md index d96aebb..b0352f9 100644 --- a/03-DESIGN/01-to-be/28-building-the-bus.md +++ b/03-DESIGN/01-to-be/28-building-the-bus.md @@ -4,7 +4,7 @@ status: proposed code: [] updated: 2026-09-26 decisions: - - 02-DECISIONS/0115-the-bus-is-built-in-five-steps.md + - 02-DECISIONS/0116-the-bus-is-built-in-five-steps.md - 02-DECISIONS/0106-the-bus-is-nats.md - 02-DECISIONS/0074-the-wire-is-specified-not-the-types.md - 02-DECISIONS/0079-the-foundation-seats-are-named-after-their-servers.md @@ -14,7 +14,7 @@ decisions: # 28. Building the bus -**The work of [ADR 0115](../../02-DECISIONS/0115-the-bus-is-built-in-five-steps.md)'s five steps, +**The work of [ADR 0116](../../02-DECISIONS/0116-the-bus-is-built-in-five-steps.md)'s five steps, in the order its dependencies allow, with what each ends at.** [Design 25](25-the-bus-on-nats.md) is the architecture and stays the authority on *what is built*; this document holds only the order, the sizes and the proofs, and it is wrong the moment it @@ -65,11 +65,11 @@ mirror rather than share (the host imports nothing, by host's link, and the runtime's client. And a search for conformance fixtures finds none anywhere in the four repositories: design 22's Phase 1.2 — the suite — has not been built. -> **This corrected the record.** ADR 0115 said step 3's fixtures were *recaptured* on NATS. There +> **This corrected the record.** ADR 0116 said step 3's fixtures were *recaptured* on NATS. There > is nothing to recapture, so step 3 **builds** the suite, and its first job is to pin the wire the > mesh has before changing it — a suite written only against the new bus certifies whatever the new > bus happens to do. A fact went stale while the decision stood, which is a **progressive insight** -> ([`02-DECISIONS/README.md`](../../02-DECISIONS/README.md)): it is marked and dated in ADR 0115 +> ([`02-DECISIONS/README.md`](../../02-DECISIONS/README.md)): it is marked and dated in ADR 0116 > itself rather than left to be discovered here. ## The order the work actually allows @@ -91,12 +91,12 @@ otherwise would put two beds where they cannot run.** Three edges decide it: So step 1's bed proves *the server, from genesis, configured* — not a mesh living on it. The full genesis bed is step 4's, where it can first run. -> **This corrected the record too.** ADR 0115 first attributed "a mesh raised on NATS from genesis" +> **This corrected the record too.** ADR 0116 first attributed "a mesh raised on NATS from genesis" > to step 1. That bed cannot run until the links exist, and a step whose proof cannot run is the > exact failure the record was written to prevent — so step 1 now ends at the server standing, > correctly configured and carrying nothing, and the full bed is named under step 4. The five > steps, their names, their order and the single rollout are unchanged; only where two beds run has -> moved. Marked and dated in ADR 0115 as a progressive insight, with what the record said before. +> moved. Marked and dated in ADR 0116 as a progressive insight, with what the record said before. ``` step 1 module, genesis places it ──┐ diff --git a/03-DESIGN/01-to-be/README.md b/03-DESIGN/01-to-be/README.md index 7e08068..584c25b 100644 --- a/03-DESIGN/01-to-be/README.md +++ b/03-DESIGN/01-to-be/README.md @@ -34,10 +34,10 @@ document is written and this one's status becomes `implemented`. | [`22-the-work-ahead.md`](22-the-work-ahead.md) | Everything decided and not yet built, in dependency order, each phase ending at a run | [ADR 0074](../../02-DECISIONS/0074-the-wire-is-specified-not-the-types.md), [ADR 0075](../../02-DECISIONS/0075-two-stores-and-which-provides-what.md), [ADR 0014](../../02-DECISIONS/0014-no-npm-workspace.md) | | [`23-choosing-a-provider.md`](23-choosing-a-provider.md) | Which of several providers of a kind serves a consumer, and when a module carries its own instead | [ADR 0084](../../02-DECISIONS/0084-which-provider-serves-a-consumer.md), [ADR 0027](../../02-DECISIONS/0027-a-provision-names-what-the-consumer-is-coupled-to.md) | | [`24-the-secrets-vault.md`](24-the-secrets-vault.md) | The module that owns a secret — a `secret` provision, and the boundary of what it owns | [ADR 0085](../../02-DECISIONS/0085-a-secret-is-a-provision.md), [ADR 0031](../../02-DECISIONS/0031-the-control-plane-authenticates-nobody.md), [ADR 0048](../../02-DECISIONS/0048-a-provider-creates-the-credential-the-mesh-minted.md) | -| [`25-the-bus-on-nats.md`](25-the-bus-on-nats.md) | **Proposed.** The architecture of the mesh's bus on NATS: what rides which subject under which guarantee and whose account, how a node joins, how a person reaches a tool, and how the mesh moves from the bus it has | [ADR 0106](../../02-DECISIONS/0106-the-bus-is-nats.md), [ADR 0115](../../02-DECISIONS/0115-the-bus-is-built-in-five-steps.md), [ADR 0043](../../02-DECISIONS/0043-a-module-broker-account-is-scoped-by-emits-and-consumes.md), [ADR 0083](../../02-DECISIONS/0083-one-push-leaves-the-mesh-consistent.md) | +| [`25-the-bus-on-nats.md`](25-the-bus-on-nats.md) | **Proposed.** The architecture of the mesh's bus on NATS: what rides which subject under which guarantee and whose account, how a node joins, how a person reaches a tool, and how the mesh moves from the bus it has | [ADR 0106](../../02-DECISIONS/0106-the-bus-is-nats.md), [ADR 0116](../../02-DECISIONS/0116-the-bus-is-built-in-five-steps.md), [ADR 0043](../../02-DECISIONS/0043-a-module-broker-account-is-scoped-by-emits-and-consumes.md), [ADR 0083](../../02-DECISIONS/0083-one-push-leaves-the-mesh-consistent.md) | | [`26-the-seats.md`](26-the-seats.md) | **Proposed.** What a mesh can have one of, who fills each, and a seat's holder answering for the provision it delivers — including the `git` seat a build's source can live on | [ADR 0110](../../02-DECISIONS/0110-a-seat-is-a-module-assignment-from-a-closed-set.md), [ADR 0111](../../02-DECISIONS/0111-a-build-source-is-on-the-git-seat-or-external.md), [ADR 0109](../../02-DECISIONS/0109-a-package-registry-seat-is-one-per-ecosystem.md) | | [`27-a-module-requires-the-mesh-resolves.md`](27-a-module-requires-the-mesh-resolves.md) | **Proposed.** One concept for everything a module needs: a requirement with a contract, answered by one of four kinds of provider, resolved at assignment or refused. Retires settings, placeholders, facts and paths in definitions | [ADR 0112](../../02-DECISIONS/0112-a-module-definition-names-no-node-mesh-or-path.md), [ADR 0113](../../02-DECISIONS/0113-the-vault-makes-every-secret.md), [ADR 0114](../../02-DECISIONS/0114-a-shared-credential-rotates-over-two-credentials.md), [ADR 0110](../../02-DECISIONS/0110-a-seat-is-a-module-assignment-from-a-closed-set.md) | -| [`28-building-the-bus.md`](28-building-the-bus.md) | **Proposed.** The five steps of the bus work in the order their dependencies allow, each ending at a bed — with the surface measured, so no step's size is a guess | [ADR 0115](../../02-DECISIONS/0115-the-bus-is-built-in-five-steps.md), [ADR 0106](../../02-DECISIONS/0106-the-bus-is-nats.md), [ADR 0074](../../02-DECISIONS/0074-the-wire-is-specified-not-the-types.md) | +| [`28-building-the-bus.md`](28-building-the-bus.md) | **Proposed.** The five steps of the bus work in the order their dependencies allow, each ending at a bed — with the surface measured, so no step's size is a guess | [ADR 0116](../../02-DECISIONS/0116-the-bus-is-built-in-five-steps.md), [ADR 0106](../../02-DECISIONS/0106-the-bus-is-nats.md), [ADR 0074](../../02-DECISIONS/0074-the-wire-is-specified-not-the-types.md) | ## Not yet written