ADR 0207: a module depends on the node seats that apply its resources

A service needs node-service-manager held on its node, a package
node-package-manager, a container node-container-runtime: derived from the
resources, never stated; refused at assign, reported at composition until the
three holders are on every node. Glossary: depends on a seat; nothing claims a
package.
This commit is contained in:
jochen
2026-10-04 12:21:24 +02:00
parent d2689c0f86
commit e4f80cc3ce
4 changed files with 121 additions and 0 deletions
+6
View File
@@ -78,6 +78,12 @@ another — and a mesh you cannot name precisely is a mesh two people describe d
mesh-scoped exclusive claim is how the mesh says "there is one of me". A foundation seat is
named after the server it guards: the `mesh-controller`, `postgres` and `lavinmq` modules claim
the `mesh-controller`, `mesh-store` and `mesh-broker` seats ([ADR 0079](../02-DECISIONS/0079-the-foundation-seats-are-named-after-their-servers.md)).
- **depends on a seat** — a module needing a seat held on its node by some module, without holding
it. Derived from the resources it declares, never stated: a `service` depends on
`node-service-manager`, a `package` on `node-package-manager`, a `container` on
`node-container-runtime` ([ADR 0207](../02-DECISIONS/0207-a-module-depends-on-the-node-seats-that-apply-its-resources.md)).
Not a claim: a module **claims** a seat it holds and **declares** resources. Nothing claims a
package.
- **provision** — a service one module `provides` and others `require`; the mesh resolves a provider
and wires the two with an endpoint and a credential. A provision is a service you offer, a seat
is a role you occupy, and the two meet where a seat delivers a provision: occupying the seat is