BoundedCounterTransferCoordinator

constructor(coordSeam: Seam, state: StateFlow<BoundedCounter>, self: ReplicaId, applyTransfer: (Patch<BoundedCounter>) -> Unit, scope: CoroutineScope, config: BoundedCounterTransferConfig = BoundedCounterTransferConfig(), equalizerConfig: BoundedCounterEqualizerConfig? = null)

Parameters

coordSeam

a us.tractat.kuilt.core.MuxSeam channel — must be pre-wired by the caller.

state

live BoundedCounter state (updated whenever Quilter applies a patch).

self

this replica's ReplicaId.

applyTransfer

called by the donor side with a transfer Patch; the caller is expected to invoke Quilter.apply so the delta propagates to peers.

scope

the caller's CoroutineScope. The coordinator launches nothing directly into it — ScopedCloseable interposes an owned child job, so cancelling this scope still stops the coordinator but closing the coordinator leaves this scope alone. The periodic equalizer loop uses delay on this scope's dispatcher — inject a test dispatcher for virtual-time control.

config

reactive-borrow tuning parameters.

equalizerConfig

proactive equalizer parameters, or null to disable the equalizer.