Files
mesh-catalog/modules/mesh-self-check/README.md
T
jschoubben 35ff67bda0
mesh/delivery-group group feat/774-l3-reland rejected: composed together: the checker's verdict at the members' heads (b48c90fea31f): integration: mesh-self-ch…
mesh/delivery closed: a newer head of the same pull request
mesh/check failed: integration: mesh-self-check/cmd/mesh-self-check.TestTheSelfCheckWholeRunsOnTheBus: the run answered {Run:doctor-1793351737-1 At:20…
Design 47's last milestones: the keeper, self-check, healers, hand-acts, provisioner, vault, artifact sweep, disk readings, credential forms (issues 774, 1952, 1953, 1954, 1955)
One commit with exactly the tree of the reviewed head 35b4509c0a, on main 12c2574c9d, so two compiled programs added and removed on the branch leave no trace in history (issue 1577).
2026-10-30 02:21:51 +01:00

34 lines
1.9 KiB
Markdown

# mesh-self-check
Holds the seat `mesh-self-check` (novox/hq ADR 0564 §6): the mesh's self-check, moved out of the controller. Go, one
binary (`cmd/mesh-self-check`), served by a runtime of its own on its own bus account (`runs-as`), so that its account
alone writes its buckets.
## What it does
Every five minutes (the first run a minute after it starts) it runs its registry of probes, each within thirty
seconds. A probe is one live invariant of a design, with its assertion as the controller had it, reading its facts on
the bus (the bus module's tools for the bus's own state). A probe whose facts have no home on the bus yet answers
`deferred`, naming them: never a pass. A probe that cannot run is said in the verdict at once, and written as a finding
of its own (`probe.<id>.failed`) when the next run cannot run it either.
What a probe finds is written as a finding, one key `<scope>.<id>.<kind>` per fault, only when what it says changes, and
deleted when a run no longer sees it. The condition keeper (`mesh-conditions`) raises and clears conditions from them.
A finding one look can be wrong about (a consumer behind after a burst) is written when two runs in a row see it.
Every run ends with the event `checked`, the body of the controller's `doctor-heartbeat`, which the watchman (S10) and
mesh-watcher on another machine hear: a self-check that stops checking is said through a path that does not pass
through it.
## What it keeps
- `mesh-self-check_findings`: what it finds wrong now.
- `mesh-self-check_verdict`: the key `last`, the last run whole.
- `mesh-self-check_verdicts`: every run (each probe's findings at most twenty), kept a week by the bucket's age.
## Its verbs and tools
- `mesh-self-check.doctor`: the last verdict; `run=true` runs now; `probe=<id>` one probe whole.
- `mesh-self-check.probes`: the registry, with what each deferred probe lacks.
- `self_check_findings`, `self_check_verdicts`: the reads of its buckets.