-
-
Notifications
You must be signed in to change notification settings - Fork 0
States
mchristegh edited this page Jul 15, 2026
·
1 revision
The node's consensus state is exposed on every output message as
msg.consensusState, and takes one of three values.
first evaluation with quorum satisfied
waiting ────────────────────────────────────────► untriggered
▲ │ ▲
│ aggregate crosses │ │ aggregate re-crosses
reset trigger threshold│ │ release threshold, or
(any state) ▼ │ quorum lost (Release policy)
│ triggered ──┘
| State | Meaning |
|---|---|
waiting |
No evaluation has ever succeeded — no readings yet, or quorum has never been met since deploy or the last reset. |
untriggered |
Evaluated; the aggregate sits on the release side of the thresholds. |
triggered |
Latched; the trigger threshold was crossed. Output 1 fired once for this transition and stays silent until a release re-arms it. |
Two things people expect to be states are deliberately flags instead, carried on every envelope:
-
msg.disabled— thedisablecommand freezes decisions (latch transitions), not data. Readings, freshness, and quorum tracking all continue while disabled. See Input Messages. -
msg.quorum— whether enough sources are currently fresh. Below quorum the aggregate is still computed and reported; only the latch evaluation is suspended. See Sources Freshness and Quorum.
So a node can be, say, triggered with quorum: false and
disabled: true simultaneously — the state names the latch, the flags
name the conditions around it.
Notes on transitions:
-
waiting → untriggered is silent. Entering evaluation for the
first time is bookkeeping, not an event. (Consequence: the
quorumregainedevent that enables the first evaluation still reportswaiting— envelopes reflect the instant of dispatch; see Output Messages.) - The latch fires once per transition. A triggered node does not re-fire output 1 on further trigger-side readings; a release re-arms it. See Trigger and Release.
-
resetreturns towaitingfrom any state, clearing learned sources and values. Expected sources remain on the roster as never-seen, and runtime overrides survive — reset clears data, not configuration. See Input Messages. - Restore is transition-silent. A persisted node re-enters its saved state without firing Trigger or Release. See Persistence.
Getting Started
Reference
Features
Examples
- Examples Basic Numeric Averaging
- Examples Staleness and Quorum
- Examples Boolean Voting
- Examples Runtime Commands
Test Script Coverage
- Overview
- Test Suite 1 — Output routing & envelope shape
- Test Suite 2 — Aggregation functions
- Test Suite 3 — Boolean mode
- Test Suite 4 — Commands
- Test Suite 5 — Threshold set-commands & release-follows-trigger
- Test Suite 6 — Status labels
- Test Suite 7 — Staleness, quorum policies, heartbeat
- Test Suite 8 — Persistence
Support