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.