Module live
Expand description
Live config publication storage.
One canonical published pair — a Config plus its opaque
ConfigRevision — behind a single short reader lock. The
inward-facing types here are storage and access only: who may publish,
when writes serialize, and how commits are retained are owned by the
runtime’s LiveConfigAuthority transaction, not by this module.
Design constraints (issue 10892 / RFC 7897, ADR-012):
- Readers observe the config and its revision as one pair; there is no way to read a config from one publication and a revision from another.
LiveConfigHandleis read-only. It exposes no write guard and no writableArc; publication happens only through theLiveConfigstorage owner held by the authority.- The revision is an opaque authority epoch (a random UUID) plus a
checked sequence. Sequences compare only within one epoch; epochs
are never ordered. A cloned
LiveConfigretains its epoch, so authority clones and gateway retries share publication identity, while a full replacement constructs a fresh epoch. - Advancing the sequence is checked: an exhausted epoch refuses to allocate the next revision before any irreversible persistence starts, and publication installs only the exact successor revision that was allocated.
Structs§
- Config
Epoch - Opaque identity of one authority generation’s publication domain.
- Config
Revision - Identity of one published config: authority epoch plus sequence.
- Live
Config - Canonical live-config storage for one authority generation.
- Live
Config Handle - Read-only live config facade.
- Live
Config Read Guard - Short-lived paired read of the published config and its revision.
Enums§
- Live
Config Error - Failures of the publication storage itself.