symfonic.services.switching.control_plane_source¶
control_plane_source ¶
DMC-4 / CUT-BR — the cache-first operated-platform binding client.
The store is a control-plane dependency, not a data-plane one. Reads come from a local cache refreshed by a watcher; the hot path never blocks on the network. What the availability rules add is the part that is easy to get wrong: how long a stale binding may keep admitting work, and when it must stop.
ControlPlaneBindingSource ¶
ControlPlaneBindingSource(store: InMemorySwitchStore, constraints: ConstraintSet, *, t_stale: float = DEFAULT_T_STALE, t_outage: float = DEFAULT_T_OUTAGE, cutover_window: float = DEFAULT_T_CUTOVER_WINDOW, clock: Callable[[], float] = time.monotonic)
Cache-first BindingSource implementing CUT-BR-1..6.
Source code in src/symfonic/services/switching/control_plane_source.py
refresh
async
¶
The watcher/poller write point. Never called from the hot path.
Source code in src/symfonic/services/switching/control_plane_source.py
resolve_epoch
async
¶
CUT-SS-7 — reconstruct the binding an earlier admission ran under.