Skip to content

createBarrierReader

createBarrierReader(options): () => Promise<ConvergenceBarrier>

Defined in: packages/client/src/circuits/subscription-client.ts:328

Read the engine’s convergence barrier through the control plane — the readBarrier the sync engine takes.

An unreachable barrier throws, and the engine treats that as a DELAY rather than a failure (ADR-0056): the group stays on the pre-alignment gate and tries again on the next delivery. So a control plane that is briefly down costs boot latency, not correctness.

A body missing a term throws for the same reason and to the same effect. Defaulting the absent field to zero would let a control plane that CANNOT report lost membership effects be read as one reporting none — a guard that cannot trip, which is protection nobody has. Throwing leaves the group on the pre-alignment gate instead: it never aligns against a barrier it cannot read whole.

Pick<SubscriptionClientOptions, "controlPlaneUrl" | "authHeaders" | "signal" | "fetch">

() => Promise<ConvergenceBarrier>