Add the chain package and its buckets: builds, rollouts and assignments with history 64 (issue 1089)

internal/chain holds typed Build, Rollout and Assignment and a Backend with no delete or purge, in memory and on the bus. The builds and rollouts buckets are asserted with history 64, no age and values up to just under a mebibyte; the assignments bucket gets the same, keeping its marker age because a stream cannot be made to disallow message ages. Migration 0104 makes the one-row chain_moved switch. The controller keeps no consolidated schema, so 0104 is the whole schema change. Nothing reads the buckets yet.
This commit is contained in:
2026-10-18 02:39:11 +02:00
parent 54070f5bc3
commit fc55785956
15 changed files with 1175 additions and 9 deletions
+3
View File
@@ -20,6 +20,9 @@ import (
// (internal/catalogue/state.go), and each mirror's own writer (this package and the loop that runs it). The
// audit of a mirror against its store (ADR 0289 §4, issue 419) joins this list when it is built.
var mayNameAMirror = []string{
// The chain opens its buckets, the assignments' among them, which stopped being a mirror when the chain took them
// (ADR 0408 §3, issue 1089).
"internal/chain/bus.go",
"cmd/mesh-controller/record_mirrors.go",
"internal/broker/controller_buckets.go",
// The grant of a machine's own keys of the assignments mirror to its provisioner client (design 57 P3).