Skip to main content

Module live

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.
  • LiveConfigHandle is read-only. It exposes no write guard and no writable Arc; publication happens only through the LiveConfig storage 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 LiveConfig retains 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§

ConfigEpoch
Opaque identity of one authority generation’s publication domain.
ConfigRevision
Identity of one published config: authority epoch plus sequence.
LiveConfig
Canonical live-config storage for one authority generation.
LiveConfigHandle
Read-only live config facade.
LiveConfigReadGuard
Short-lived paired read of the published config and its revision.

Enums§

LiveConfigError
Failures of the publication storage itself.