Merge pull request 'Design 47: the bus module is wanted like any module; only a warranted want replaces its server (ADR 0594)' (#505) from docs/774-bus-want into main
This commit was merged in pull request #505.
This commit is contained in:
@@ -4,6 +4,7 @@ status: in-progress
|
|||||||
code: [mesh-controller, mesh-catalog modules/mesh-delivery-gate, mesh-delivery, mesh-host, mesh-sdk, mesh-vault, hq 00-META/checks]
|
code: [mesh-controller, mesh-catalog modules/mesh-delivery-gate, mesh-delivery, mesh-host, mesh-sdk, mesh-vault, hq 00-META/checks]
|
||||||
updated: 2026-11-03
|
updated: 2026-11-03
|
||||||
decisions:
|
decisions:
|
||||||
|
- "ADR 0594"
|
||||||
- "ADR 0572"
|
- "ADR 0572"
|
||||||
- "ADR 0571"
|
- "ADR 0571"
|
||||||
- "ADR 0570"
|
- "ADR 0570"
|
||||||
@@ -845,6 +846,21 @@ backup holder backs up nothing, and the have says so.
|
|||||||
fingerprint, the digest, the phase and the health after the module's start window. A failed apply is loud,
|
fingerprint, the digest, the phase and the health after the module's start window. A failed apply is loud,
|
||||||
retried by the next change of the want or the composition, never by a clock, and fixed forward (ADR 0360 §8,
|
retried by the next change of the want or the composition, never by a clock, and fixed forward (ADR 0360 §8,
|
||||||
ADR 0539 §9).
|
ADR 0539 §9).
|
||||||
|
- **The bus module is wanted like any module; only a warranted want replaces its server** (ADR 0594, changing
|
||||||
|
ADR 0539 §14 and §15, ADR 0546 §8 and ADR 0565 §7 for the bus module). The assigner writes the bus module's want by
|
||||||
|
the same rules as every module's, and the node agent applies what that want brings (its files, its processes' bus
|
||||||
|
accounts and secrets, its tools) while it keeps the server's container as it runs, with no record ask. Only a want
|
||||||
|
that carries the operator's warrant (a put after the streams' snapshot, or the operator's hand write) replaces the
|
||||||
|
server; until then the bus module's have names the fingerprint applied and the one the server runs, and the view
|
||||||
|
says the server waits. mesh-sdk names the resources the bus's
|
||||||
|
server holds, so the assigner and the node agent read one list; the assigner writes the bus module's want only to a
|
||||||
|
node agent whose have says it keeps the server (the version it reports), so the node agent's keeping of the server
|
||||||
|
is delivered before the assigner's change. Until
|
||||||
|
then nothing writes the bus module's process accounts, and its tools that write to the bus fail (issue 774, the
|
||||||
|
operator, 2026-11-03). How it is checked: a node agent unit test applies a bus module's new want and shows the
|
||||||
|
server's container untouched and the tools' account written; an assigner unit test writes the bus module's want
|
||||||
|
by the rules, holds the server's replacement for a put, and writes none to a node agent whose have does not say it
|
||||||
|
keeps the server.
|
||||||
- **Every want is owed.** The watchman mirrors every want as a pulse owed by that node's agent until its have
|
- **Every want is owed.** The watchman mirrors every want as a pulse owed by that node's agent until its have
|
||||||
names the want's fingerprint, so a node that does not move is a stall (ADR 0539 §19).
|
names the want's fingerprint, so a node that does not move is a stall (ADR 0539 §19).
|
||||||
- **A move a person must allow is judged by the node and asked by the assigner.** The node agent applies ADR 0377
|
- **A move a person must allow is judged by the node and asked by the assigner.** The node agent applies ADR 0377
|
||||||
|
|||||||
Reference in New Issue
Block a user