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…
One commit with exactly the tree of the reviewed head35b4509c0a, on main12c2574c9d, so two compiled programs added and removed on the branch leave no trace in history (issue 1577).
47 lines
3.1 KiB
Markdown
47 lines
3.1 KiB
Markdown
# mesh-healers
|
|
|
|
Holds the seat `mesh-healers` (novox/hq ADR 0564 §7, §8): the mesh's healers, moved out of the controller. Go, one
|
|
binary (`cmd/mesh-healers`), served by a runtime of its own on its own bus account (`runs-as`).
|
|
|
|
## What it does
|
|
|
|
It hears the condition keeper's `condition-raised` and `condition-changed` (seat `mesh-conditions`) on a durable
|
|
consumer. A condition whose kind a healer answers is acted on within the healer's budget, its settle and the mesh-wide
|
|
brake (twelve acts an hour). A repair is a call of the seat or tool that owns the act: H3 asks the grants part's
|
|
`grants_assert` for the module whose consumer is gone. H4 (the controller's own consumer) and H5 (the provider's own
|
|
repair) are registered and run elsewhere.
|
|
|
|
Each act is begun by a create of its key in `attempts` before it is made and finished after, so a holder that dies
|
|
mid-act has spent it and a second instance cannot begin it again. The condition keeper writes the condition's
|
|
`tried`, resolver and escalation from `attempts`; a healer writes no condition.
|
|
|
|
**Only once the controller's lease names no controller.** Until the write that hands the lease away, each act it would
|
|
take is written to `would`, never to `attempts`: it counts for no budget, settle or brake and reaches no condition.
|
|
|
|
Each key of `attempts` and `would` lives a week from its last write, its own time to live (the buckets are declared
|
|
`key-ttl`): nothing else deletes `would`, and once the lease is handed away nothing is written there. The healers' waits
|
|
are keys of `wakes` whose time to live is the wait: `settle.<condition key>` ends with a settle and judges the condition
|
|
again, `fortnight` ends when S15's oldest counted act leaves the fortnight and counts again. The watch of `wakes` hears
|
|
each expiry; no timer runs in the process. A wait still running is on the bus across a restart; one that expired while
|
|
no instance watched is judged at the start, once the lease is first read.
|
|
|
|
S15: it hears the seat mesh-hand-acts' `act-recorded` and watches the controller's hand-act log and writes `healer-wanted` for a cause repaired by hand twice within a
|
|
fortnight; a drill and a person's decision by design never count.
|
|
|
|
## What it keeps
|
|
|
|
- `mesh-healers_attempts`: every act and escalation, each key kept a week.
|
|
- `mesh-healers_would`: the newest act it would take per healer and condition while the controller holds the lease,
|
|
each key kept a week.
|
|
- `mesh-healers_findings`: the brake, its own blindness, and S15.
|
|
- `mesh-healers_wakes`: the waits, each key living as long as it waits.
|
|
|
|
## Its verbs and tools
|
|
|
|
- `mesh-healers.healers`: the registry, the acts of the last days, the would-acts, the brake, whether it acts and why;
|
|
`recount=true` counts the hand-act log again.
|
|
- `mesh-healers.heal`: one act now on an open condition, by key and why.
|
|
- `mesh-healers.drill`: records a drill in the hand-act log of the seat `mesh-hand-acts` as `hand-act drill` (the
|
|
controller's `drill` while that seat has no holder and the controller holds its lease). S15 never counts a drill.
|
|
- `healers_findings`, `healers_would`, `healers_wakes`: the reads of its buckets.
|