Building the bus: the decisions the work needed, and what it taught back #150

Merged
jschoubben merged 45 commits from feat/nats-genesis into main 2026-09-27 17:06:40 +00:00
Showing only changes of commit 5c193b3f54 - Show all commits
+4 -4
View File
@@ -252,10 +252,10 @@ pays for itself furthest away.
- [x] 3.8 **the declaration model** of [design 29](29-what-a-module-declares.md): local names - [x] 3.8 **the declaration model** of [design 29](29-what-a-module-declares.md): local names
derived to subjects, the three namespaces, permissions computed from a declaration, and a derived to subjects, the three namespaces, permissions computed from a declaration, and a
manifest that contains no subject. Done in the controller's composer (permissions, streams, manifest that contains no subject. Done in the controller's composer (permissions, streams,
consumers) and in the runtime's client (subjects derived from the credential, never named consumers), in the runtime's client (subjects derived from the credential, never named by a
by a module). What is **not** done is enforcing "a manifest contains no subject" as a module), and as a catalogue test asserting all 72 manifests hold no subject — because the
catalogue test — the rule holds by construction today because nothing reads a subject from rule held by construction, and a rule held by construction is one a later field breaks
a manifest, and a rule held by construction is one a later field could break quietly. quietly.
- [x] 3.9 **seats declared by modules** — the manifest now carries `seats` (name, scope, - [x] 3.9 **seats declared by modules** — the manifest now carries `seats` (name, scope,
accepts/emits/serves, retention) and `uses`, and registration refuses a `mesh-*` name, a accepts/emits/serves, retention) and `uses`, and registration refuses a `mesh-*` name, a
duplicate declarer, an undeclared `uses` or claim, a seat with no protocol, a scope duplicate declarer, an undeclared `uses` or claim, a seat with no protocol, a scope