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