From 878690697ed04e6e82dcbc41885fc28142369a0d Mon Sep 17 00:00:00 2001 From: jochen Date: Mon, 28 Sep 2026 16:46:42 +0200 Subject: [PATCH] A push raises what a module hears, not only a start MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A module's declaration and its consumer are derived from the same records, and only one of them followed a push: the consumers were raised when the control plane started serving, so a module that gained a `consumes` was sent a declaration it could act on and a consumer that never delivered the event — with nothing anywhere saying the two disagreed. Found on review: the catalogue's own replay subscription was recorded, granted and never delivered. Everything the raise does is idempotent, so a push may do it. --- cmd/mesh-controller/push.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/cmd/mesh-controller/push.go b/cmd/mesh-controller/push.go index c9497a5..4870bfa 100644 --- a/cmd/mesh-controller/push.go +++ b/cmd/mesh-controller/push.go @@ -162,7 +162,13 @@ func declare(ctx context.Context, args []string) error { return err } - server, err := connectLink(ctx, nil, nil, nil) + // **With the inventory, so the bus is raised** (novox/hq ADR 0134, design 30). A module's + // declaration and how it hears what it consumes move together: its consumer is derived from the + // same records this declaration is composed from. Raised only when the control plane started + // serving, a module that gained a `consumes` was sent a declaration it could act on and a + // consumer that never delivered the event — and nothing anywhere said the two disagreed + // (found on review, 2026-09-28). Everything the raise does is idempotent. + server, err := connectLink(ctx, inv, nil, nil) if err != nil { return err }