TurnSequencer

constructor(node: RaftNode, serializer: KSerializer<A>, format: BinaryFormat = DEFAULT_FORMAT)

Parameters

node

The backing RaftNode. Lifetime is owned by the caller; this facade does not close node when done.

serializer

The KSerializer used to encode actions to bytes for Raft replication and to decode committed bytes back to A.

format

The BinaryFormat used to encode and decode actions. This becomes the single source of truth for the wire encoding of every log entry, so any replay layer (e.g. snapshot / log scan) must use the same format instance to produce byte-identical payloads. Defaults to a shared CBOR instance.

Note: A is invariant because it appears in both input position (propose(action: A)) and output position (events). Only IndexedAction and TurnEvent are covariant (out A) since they are pure output carriers.