ADR 0135 supersedes 0133: a module version prepares its state before it runs
Two faults in 0133, both caught on review. It put the declaration on a container — one resource kind the host applies — so every author would restate the machine's arrangement and a module's own lifecycle would be tied to how its artifact happens to run. A module declares entrypoints for its tools and its provisioner; preparing its state is the same vocabulary and nothing about a runtime. And it derived the scope from the machine, which the facts already answer: a consumer is a module on a machine (issue 022, migration 0015), so what the mesh provisions is per consumer. A module on three machines has three databases, there is no shared state to race over, and the lock obligation 0133 invented was for a situation the mesh does not produce. The level question HAL answered with stages dissolves — the scope of preparation is the scope of the state, and the mesh knows it. 0133 keeps its reasoning and gains a pointer; design 32 and issue 133 name the live record.
This commit is contained in:
+5
-4
@@ -55,10 +55,11 @@ server starts, which means the old binary briefly runs against the new schema. A
|
||||
removes or renames something would break the running control plane in the window between the two.
|
||||
|
||||
**A hand-written step is one the next module forgets**, which is why this fix is not where the matter
|
||||
ends: [ADR 0133](../../02-DECISIONS/0133-a-module-owns-its-migrations-and-the-mesh-owns-when-they-run.md)
|
||||
makes the step derived — a container declares what must run before it, and the mesh composes the gated
|
||||
resource — so the control plane stops being the only module that had to remember. The same record
|
||||
settles the level question HAL answered with stages, and
|
||||
ends: [ADR 0135](../../02-DECISIONS/0135-a-module-version-prepares-its-state-before-it-runs.md) makes it
|
||||
derived and puts it where an author works: a module version declares an entrypoint that prepares its
|
||||
state, and the mesh composes the gated work from it, so the control plane stops being the only module
|
||||
that had to remember. That record also settles the level question HAL answered with stages — a consumer
|
||||
is a module on a machine, so the scope of preparation is the scope of the state — and
|
||||
[ADR 0134](../../02-DECISIONS/0134-the-mesh-says-what-it-applied.md) answers the second open question
|
||||
below: what a machine applied, and what it refused, become facts on the bus rather than a line in a log.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user