diff --git a/01-RESEARCH/044-what-leaves-the-controller-next/00-overview.md b/01-RESEARCH/044-what-leaves-the-controller-next/00-overview.md index 7f5e87b3..c0a75935 100644 --- a/01-RESEARCH/044-what-leaves-the-controller-next/00-overview.md +++ b/01-RESEARCH/044-what-leaves-the-controller-next/00-overview.md @@ -50,6 +50,29 @@ Issue 382 in the issue tracker (a small fix takes 45 minutes to reach a node) me behind two other walks, and each tier costs about 4 to 5 minutes. A change to a part that does not need to be in the controller still pays that price, and still holds up every other walk while it does. +## The operator's direction (2026-10-10) + +The operator holds that the controller should not be the mesh's monitor, and proposes a module of its +own for it: a **mesh-monitor** module claiming a seat for watching the mesh. This is the effort's leading +hypothesis, to be tested by the questions below rather than assumed by them. What it would hold: + +- the probes (resolvers answering, version drift, the machine's network checks); +- the bus's advisories, read live, including JetStream's API errors with the user, subject and code that + caused each (issue 328 waits for this module rather than adding a reader to the controller); +- conditions: raised, cleared, silenced and handed to the operator's channels; +- the hand-act log and its *healer wanted* counts; +- what a bundle-only module cannot raise today + ([ADR 0240](../../02-DECISIONS/0240-a-module-says-how-it-is-healthy-and-the-node-engine-judges-it.md) rule 8), such as the + issue tracker's fix stuck after its merge + ([ADR 0281](../../02-DECISIONS/0281-an-issue-knows-whether-its-fix-is-delivered-and-a-fix-stuck-after-its-merge-is-loud.md)): a module reports it on + the bus and the monitor raises it. + +What it would gain: a change to watching no longer walks the controller's tier, and the mesh keeps +watching while the controller is down. What it must answer: who notices when the monitor itself is +down (the controller's liveness check of every module is the candidate, the one piece of watching the +controller keeps), and how conditions move from the controller's store to the monitor's without a gap +(question 5). + ## The questions 1. **Where the change goes, by domain.** Group the last month's controller merges by the domains of