From 53092020eb555895dc8feb692438c09e8e6af3fd Mon Sep 17 00:00:00 2001 From: jochen Date: Sun, 27 Sep 2026 00:11:44 +0200 Subject: [PATCH] WBS: asking a tool is through the seam; a build is a different shape --- 03-DESIGN/01-to-be/28-building-the-bus.md | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/03-DESIGN/01-to-be/28-building-the-bus.md b/03-DESIGN/01-to-be/28-building-the-bus.md index ac42cfb..b564f8d 100644 --- a/03-DESIGN/01-to-be/28-building-the-bus.md +++ b/03-DESIGN/01-to-be/28-building-the-bus.md @@ -259,8 +259,19 @@ pays for itself furthest away. of the declaration it is about, so supersession becomes a check rather than something the controller remembers. Pure and tested without a bus, a store or a clock. - Still outstanding: wiring that decision into the loop, `RequestBuild` and `Ask`, enrolment, - and serving. + **Asking a tool is through the seam and loses two problems**: there is no reply queue to + declare and no correlation to check, because each account has one inbox prefix and an + answer cannot reach the wrong asker โ€” which settles a cost the build code records having + paid, where every asker saw every result. And a tool nobody serves says so at once instead + of after the whole wait, which is the difference between "that module is down" and "that + tool is slow". + + **A build is a different shape, not the same one.** It takes minutes, so it is work + submitted to a queue with the outcome returning to a reply subject the request carries โ€” + the pattern design 25 ยง2 already sets for anything crossing a stream. It touches the + builder as well, so it travels with that conversion in step 4. + + Still outstanding: wiring the window decision into the loop, enrolment, and serving. - [~] 3.5 the host's link on NATS โ€” **the outbound half is through a seam**, mirroring the controller's and still importing nothing of the mesh's own (ADR 0005): the host's own interface over its own libraries, agreeing with the controller only because a fixture holds