From acef75d3985a030a53b39a1b236dfad9e8c73416 Mon Sep 17 00:00:00 2001 From: jochen Date: Mon, 2 Nov 2026 18:24:01 +0100 Subject: [PATCH] =?UTF-8?q?membership:=20an=20issued=20state=20may=20be=20?= =?UTF-8?q?one=20bucket=20per=20node,=20so=20the=20runtime=20reads=20every?= =?UTF-8?q?=20node's=20compositions=20for=20a=20bundle=20as=20one=20state?= =?UTF-8?q?=20(ADR=200593=20=C2=A76)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL --- go/membership/membership.go | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/go/membership/membership.go b/go/membership/membership.go index c942ccc..8fd93fd 100644 --- a/go/membership/membership.go +++ b/go/membership/membership.go @@ -74,11 +74,17 @@ type SeatServed struct { // StateIssued is one bucket an assignment may reach, by the name its module uses for it (novox/hq ADR 0201). // Key, when set, is the one key it may reach (novox/hq ADR 0260): this machine's. +// +// PerNode says the state is kept one bucket per node (novox/hq ADR 0593 ยง6: `composed-`): Bucket is then the +// buckets' prefix, each bucket the prefix and a node's name, and a key's first part names its node and so its bucket. +// The runtime reads it as one state (as process.NodeFamily does): a key from its node's bucket, the keys and a watch over +// every bucket of the family, one created later included. Read only: PerNode is never issued with Writes. type StateIssued struct { - Name string `json:"name"` - Bucket string `json:"bucket"` - Writes bool `json:"writes,omitempty"` - Key string `json:"key,omitempty"` + Name string `json:"name"` + Bucket string `json:"bucket"` + Writes bool `json:"writes,omitempty"` + Key string `json:"key,omitempty"` + PerNode bool `json:"per-node,omitempty"` } // LogIssued is one log an assignment may reach, by the name its module uses for it (novox/hq ADR 0297).