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>;
13
14pub enum ReplicationPrimaryMessage {
15 ReadCdcBatch {
16 since_version: CommitVersion,
17 batch_size: u64,
18 reply: Reply<Result<CdcBatch, Error>>,
19 },
20
21 GetVersion {
22 reply: Reply<Result<VersionInfo, Error>>,
23 },
24}
25
26pub struct VersionInfo {
27 pub current: Option<CommitVersion>,
28 pub min_cdc: Option<CommitVersion>,
29 pub max_cdc: Option<CommitVersion>,
30}
31
32pub type ReplicationReplicaHandle = ActorHandle<ReplicationReplicaMessage>;
33
34pub enum ReplicationReplicaMessage {
35 ApplyEntry {
36 version: CommitVersion,
37 system_changes: Vec<SystemChange>,
38 reply: Reply<Result<(), Error>>,
39 },
40
41 GetCurrentVersion {
42 reply: Reply<CommitVersion>,
43 },
44}