From 36c4ce605e929587435866fc8e7f3ad6bea5ea11 Mon Sep 17 00:00:00 2001 From: jochen Date: Sun, 18 Oct 2026 02:40:10 +0200 Subject: [PATCH] Say where the assignments bucket is declared why it keeps its marker age (issue 1089) --- internal/broker/controller_buckets.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/internal/broker/controller_buckets.go b/internal/broker/controller_buckets.go index 529eb2f3..1535ecb3 100644 --- a/internal/broker/controller_buckets.go +++ b/internal/broker/controller_buckets.go @@ -101,6 +101,12 @@ var ( RolloutsBucket = BucketName(ControllerSeat, ChainRollouts) ) +// **The assignments bucket keeps the marker age (MirrorMarkerTTL) it was made with as a mirror.** A stream that allows +// messages an age cannot be made to disallow them (the server refuses the update: "message TTL status can not be +// disabled", nats-server stream.go), so asserting the bucket without the age would fail the controller's start on a +// mesh that has the bucket. The chain never purges or removes a key (ADR 0408 ยง4), so no marker is ever written and the +// age ends nothing; it is kept only so the stream's configuration stays one the server accepts. +// // The chain buckets' local names, as a reader names them in `reads` after `mesh-controller.`. const ( ChainBuilds = "builds"