ADR 0079: foundation seats are named after their servers; issue 056 resolved
The store and broker were "one per mesh" by convention only. Each foundation module now claims a mesh-scoped seat named after the server it guards — postgres/mesh-store, lavinmq/mesh-broker — and the controller's seat is renamed the-controller -> mesh-controller so all three follow one rule. The resolver refuses a second holder, closing 056. Glossary, the foundation and installation docs, and the decisions index follow the new name. https://claude.ai/code/session_01D6qtiYU3P9jk3pnAXyAFyx
This commit is contained in:
+17
-3
@@ -1,9 +1,9 @@
|
||||
---
|
||||
status: open
|
||||
status: resolved
|
||||
opened: 2026-09-17
|
||||
located-in: [mesh-controller, mesh-host]
|
||||
fixed-by:
|
||||
amended-design:
|
||||
fixed-by: mesh-catalog + mesh-controller (the foundation modules claim mesh-scoped seats)
|
||||
amended-design: 02-DECISIONS/0079-the-foundation-seats-are-named-after-their-servers.md
|
||||
---
|
||||
|
||||
# 056 — An adopted module assigned to a second node raises a second server
|
||||
@@ -40,3 +40,17 @@ for.
|
||||
controller refuses to place it on a node whose foundation did not raise that container?
|
||||
- How is "one postgres, one lavinmq" checked, rather than assumed — in the resolver, in `status`, or
|
||||
in a bed that tries the second assignment and asserts the refusal?
|
||||
|
||||
## Resolution (2026-09-17)
|
||||
|
||||
The foundation modules now claim a mesh-scoped **seat** named after the server each guards —
|
||||
`postgres` claims `mesh-store`, `lavinmq` claims `mesh-broker`, and the controller's seat is
|
||||
renamed `the-controller` → `mesh-controller` so all three follow one convention
|
||||
([ADR 0079](../../02-DECISIONS/0079-the-foundation-seats-are-named-after-their-servers.md)). The
|
||||
resolver's `checkClaims` refuses a second holder mesh-wide — the same mechanism that keeps one
|
||||
hub and one controller — so a second `assign` is a refusal at resolution (*one per mesh*), not a
|
||||
silent second server.
|
||||
|
||||
Checked by `TestAFoundationModuleCannotBeRaisedOnASecondNode` (each foundation module's second
|
||||
assignment is refused) and by the manifests declaring the seat; the two-node adopted-broker bed
|
||||
stays green with the seats in place, so the claim does not break single-node adoption.
|
||||
|
||||
Reference in New Issue
Block a user