From f9677dabead790632f527c6a4f2ca9b03fdec869 Mon Sep 17 00:00:00 2001 From: jochen Date: Sun, 11 Oct 2026 04:21:12 +0200 Subject: [PATCH] Accept ADR 0293 on the operator's word, and give it its place in to-be 45 (issue 334) The operator chose 2026-10-11 to let the controller deliver its own given-up asks again; every other ask stays drop-only. --- ...n-is-kept-until-a-person-delivers-it-again-or-drops-it.md | 2 +- ...o-its-seats-worker-and-every-other-ask-is-only-dropped.md | 4 ++-- 03-DESIGN/01-to-be/45-a-core-that-cannot-fail-silently.md | 5 +++-- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/02-DECISIONS/0264-a-message-a-consumer-gives-up-on-is-kept-until-a-person-delivers-it-again-or-drops-it.md b/02-DECISIONS/0264-a-message-a-consumer-gives-up-on-is-kept-until-a-person-delivers-it-again-or-drops-it.md index d734d60b..7c8776a0 100644 --- a/02-DECISIONS/0264-a-message-a-consumer-gives-up-on-is-kept-until-a-person-delivers-it-again-or-drops-it.md +++ b/02-DECISIONS/0264-a-message-a-consumer-gives-up-on-is-kept-until-a-person-delivers-it-again-or-drops-it.md @@ -11,7 +11,7 @@ reconstructed: false > **Superseded in part — 2026-10-11, by [ADR 0293](0293-an-ask-the-controller-made-is-delivered-again-to-its-seats-worker-and-every-other-ask-is-only-dropped.md).** > Decision 4's "an ask a seat's worker gave up on can only be dropped" no longer holds for an ask the controller > made itself: it is delivered again to the seat's worker, after the original leaves the queue. Every other ask, -> and the rest of this record, stand. ADR 0293 is proposed: until it is accepted, decision 4 holds as written. +> and the rest of this record, stand. ## Context diff --git a/02-DECISIONS/0293-an-ask-the-controller-made-is-delivered-again-to-its-seats-worker-and-every-other-ask-is-only-dropped.md b/02-DECISIONS/0293-an-ask-the-controller-made-is-delivered-again-to-its-seats-worker-and-every-other-ask-is-only-dropped.md index 4c0288b5..75bfd3e8 100644 --- a/02-DECISIONS/0293-an-ask-the-controller-made-is-delivered-again-to-its-seats-worker-and-every-other-ask-is-only-dropped.md +++ b/02-DECISIONS/0293-an-ask-the-controller-made-is-delivered-again-to-its-seats-worker-and-every-other-ask-is-only-dropped.md @@ -1,8 +1,8 @@ --- topic: the mesh -status: proposed +status: accepted date: 2026-10-11 -deciders: jochen (proposed by the agent session that fixed issue 334; the operator decides) +deciders: jochen (proposed by the agent session that fixed issue 334; accepted by the operator on 2026-10-11) reconstructed: false supersedes-in-part: - 02-DECISIONS/0264-a-message-a-consumer-gives-up-on-is-kept-until-a-person-delivers-it-again-or-drops-it.md diff --git a/03-DESIGN/01-to-be/45-a-core-that-cannot-fail-silently.md b/03-DESIGN/01-to-be/45-a-core-that-cannot-fail-silently.md index e2fc12f8..9fb57a63 100644 --- a/03-DESIGN/01-to-be/45-a-core-that-cannot-fail-silently.md +++ b/03-DESIGN/01-to-be/45-a-core-that-cannot-fail-silently.md @@ -2,8 +2,9 @@ layer: to-be status: in-progress code: [mesh-controller, mesh-host, mesh-tools, mesh-catalog, mesh-sdk, mesh-lab] -updated: 2026-10-10 +updated: 2026-10-11 decisions: + - 02-DECISIONS/0293-an-ask-the-controller-made-is-delivered-again-to-its-seats-worker-and-every-other-ask-is-only-dropped.md - 02-DECISIONS/0289-the-controller-mirrors-its-records-into-buckets-written-only-on-a-change-and-audited-against-its-store.md - 02-DECISIONS/0285-an-issue-tracks-a-condition-by-its-key-and-every-message-about-the-condition-says-the-issue-and-where-it-stands.md - 02-DECISIONS/0276-merges-are-assembled-in-a-rolling-window-and-each-batch-is-delivered-by-one-walk-with-one-commit-per-repository.md @@ -95,7 +96,7 @@ Every kind of state the core keeps, and the one component that writes it. Anyone | a machine's declared data: what it measured, what is retired, what was deleted (ADR 0233) | controller, from what each `node-backup` holder answers | the controller's store, `data_item` and `data_reading` | the holder measures and says; it records nothing the controller keeps | | the facts snapshot | controller | the artifact store, `facts/latest` | the build seat reads | | the record mirrors: nodes, assignments, walks, builds, settings ([ADR 0289](../../02-DECISIONS/0289-the-controller-mirrors-its-records-into-buckets-written-only-on-a-change-and-audited-against-its-store.md), *added 2026-10-10*) | controller (lease holder), after each change commits in its store, only when the value differs | key-value `mesh-controller_nodes`, `_assignments`, `_walks`, `_builds`, `_settings`; one event per write | read through `reads` (ADR 0201); D17 compares them with the store; the controller never reads them to decide ([to-be 54](54-the-controllers-records-on-the-bus.md)) | -| a message a consumer gave up on (ADR 0264) | controller, from the server's maximum-deliveries notice | the bus, the stream `DEAD_LETTERS` | read, delivered again or dropped through the controller's `dead-letters` verb, with why | +| a message a consumer gave up on (ADR 0264) | controller, from the server's maximum-deliveries notice | the bus, the stream `DEAD_LETTERS` | read, delivered again or dropped through the controller's `dead-letters` verb, with why; an ask is delivered again only when the controller made it itself, every other ask is only dropped (ADR 0293) | A bus subject two components may publish on is refused when the controller composes grants, unless this table marks it shared. Changing a writer is a change to this table, through a decision.