Glossary: placement, mesh-placement, placement proposal, candidate and hand-back replace the placement file
mesh/delivery merged: source.main moved to novox/hq@eec73b8af0d7
mesh/delivery-group group feat/1126-placement-seat merged: every member is merged
mesh/check pass 1aa887dd2898 on eec73b8af0d7 | unit 39 run, 0 kept, 1 skipped | integration 39 run, 0 kept, 1 skipped | composition passed

This commit is contained in:
2026-10-28 18:25:31 +01:00
parent aa4c2fe7ef
commit 1aa887dd28
+22 -15
View File
@@ -240,24 +240,31 @@ every other domain has something to run on. **Recorded by** the controller and t
## Placement — what runs on which node ## Placement — what runs on which node
**Purpose.** To decide, send and apply what each node runs, and to say why. **Purpose.** To decide, send and apply what each node runs, and to say why.
**Recorded by** the controller's `inventory` database; from ADR 0549, by the catalog's placement files, which **Recorded by** the controller's `inventory` database; from ADR 0567, by the seat `mesh-placement`, in its states on
the indexer reads onto the bus. **Upstream of** Provisioning, Connectivity, Data the bus. **Upstream of** Provisioning, Connectivity, Data
and Health and repair. **Decided by** ADR 0100, 0126, 0176, 0181, 0207, 0221, 0252, 0261, 0411, 0539, 0549, 0559. and Health and repair. **Decided by** ADR 0100, 0126, 0176, 0181, 0207, 0221, 0252, 0261, 0411, 0539, 0549, 0559, 0567.
**Uses:** node, machine, module, seat, manifest (Module), config value (Config). **Uses:** node, machine, module, seat, manifest (Module), config value (Config), proposal (Operator and conversation).
- **assignment** — a module put on a node. Its config values on that node (module-assignment config, - **assignment** — a module put on a node. Its config values on that node (module-assignment config,
Config) are `mesh-config`'s, never part of what the controller records (ADR 0348 §9). Config) are `mesh-config`'s, never part of what the controller records (ADR 0348 §9).
- **placement file** — the catalog's file for one node: the modules placed on it and, for each, its pins, its - **placement** — which module runs on which node, with its pins, host ports and bindings, and what a person
host ports and its bindings to the providers it requires. It changes only by a pull request on the catalog, decided of the node, as one key per node in the state `placement` of the seat `mesh-placement`. It changes only by
and the indexer reads it at each trunk merge into its state `placement`, one key per node, which every reader a placement proposal the operator approves, and no repository holds it or names a node (ADR 0567). Until ADR
of placement watches (ADR 0549 §1 to §3). Until ADR 0547's third milestone the controller's assignments are 0547's third milestone the controller's assignments are kept equal to it by the holder.
kept equal to it. *Not:* ~~placement file~~ (hq)
- **placement candidate** — a placement file of one node as an open catalog pull request has it at its head, - **mesh-placement** — the seat, held once for the mesh by the assigner, that keeps placement: its states
kept by the indexer in its state `placement-candidates` under `<group>.<node>` while the pull request is open. `placement`, `proposals` and `candidates`, and its seven verbs `placement`, `proposals`, `propose`, `withdraw`,
Every node composes it in **shadow** (composed and compared, never applied) and answers in its own have whether `again`, `adopt` and `hand-back`. Only the holder writes its states (ADR 0567).
what it would run is the same; the composition check passes only when every placed node has answered the same - **placement proposal** — a change to placement put forward through the verb `propose`: the changes, the revision
or differs only where the change intends (ADR 0559). Not the indexer's candidates of a group, which are of each key they were laid over, the nodes' answers, the verdict and the ask. It takes effect only on the operator's
fingerprints (Delivery). Approve, and is discarded if declined, expired or withdrawn. A kind of *proposal* (Operator and conversation).
- **placement candidate** — one node's placement as a placement proposal lays it, kept in the state `candidates`
of the seat `mesh-placement` under `<proposal>.<node>` while the proposal is open. The node composes it in
**shadow** (composed and compared, never applied) and answers in its own have whether what it would run is the
same; the verdict fails only on a refusal or a node that has not answered (ADR 0567). Not the indexer's candidates of
a group, which are fingerprints (Delivery).
- **hand-back** — the operator's verb `hand-back` of the seat `mesh-placement`, answered until the lease write: it
deletes every placement key, and every node returns to the compositions the controller sends. A hand act (ADR 0567).
- **pending assignment** — an assignment of a module whose build is still running, kept, and made by the - **pending assignment** — an assignment of a module whose build is still running, kept, and made by the
controller when that build registers the module, or ended with why when it does not controller when that build registers the module, or ended with why when it does not
(ADR 0261). (ADR 0261).