reifydb_core/actors/
replication.rs1use reifydb_runtime::actor::{reply::Reply, system::ActorHandle};
5use reifydb_type::error::Error;
6
7use crate::{
8 common::CommitVersion,
9 interface::cdc::{CdcBatch, SystemChange},
10};
11
12pub type ReplicationPrimaryHandle = ActorHandle<ReplicationPrimaryMessage>;
14
15pub enum ReplicationPrimaryMessage {
17 ReadCdcBatch {
19 since_version: CommitVersion,
20 batch_size: u64,
21 reply: Reply<Result<CdcBatch, Error>>,
22 },
23 GetVersion {
25 reply: Reply<Result<VersionInfo, Error>>,
26 },
27}
28
29pub struct VersionInfo {
31 pub current: Option<CommitVersion>,
32 pub min_cdc: Option<CommitVersion>,
33 pub max_cdc: Option<CommitVersion>,
34}
35
36pub type ReplicationReplicaHandle = ActorHandle<ReplicationReplicaMessage>;
38
39pub enum ReplicationReplicaMessage {
41 ApplyEntry {
43 version: CommitVersion,
44 system_changes: Vec<SystemChange>,
45 reply: Reply<Result<(), Error>>,
46 },
47 GetCurrentVersion {
49 reply: Reply<CommitVersion>,
50 },
51}