pub enum ReplicaApply {
SnapshotBegin,
SnapshotChunk(Vec<u8>),
SnapshotEnd {
ack_offset: u64,
routed: bool,
gate: Option<SnapshotGate>,
},
Frame {
offset: u64,
argv: Argv,
},
}Expand description
One event delivered from a replica runner to its target shard.
Mirrors kevy_replicate::replica::ReplicaEvent except Frame
carries an owned Argv (already decoded by the runner) instead
of a DecodedFrame { offset, argv } — the offset is gap-checked
by the runner on the way in, so the shard doesn’t need it.
Variants§
SnapshotBegin
Upstream started shipping a full snapshot. The shard should reset its accumulating snapshot buffer.
SnapshotChunk(Vec<u8>)
One chunk of snapshot bytes. The shard appends to its buffer.
SnapshotEnd
Upstream finished the snapshot. The shard hands its buffered
bytes to kevy_persist::load_snapshot_from (replacing the
Store contents) and resumes at ack_offset for live frames.
routed = true (single-source mode) means the payload is
the WHOLE upstream keyspace broadcast to every shard — each
shard loads only its own hash slice.
gate: dropped by the shard after the load lands (see
SnapshotGate); None when the runner has nothing to hang
on the completion.
Frame
One live mutation frame to be applied via kevy::dispatch
(inside a crate::ReplicatedApplyGuard scope so the apply
doesn’t re-push into this shard’s downstream
ReplicationSource).