Skip to main content

reifydb_core/actors/
cdc.rs

1// SPDX-License-Identifier: Apache-2.0
2// Copyright (c) 2026 ReifyDB
3
4use reifydb_runtime::actor::system::ActorHandle;
5use reifydb_value::{Result, value::datetime::DateTime};
6
7use crate::{common::CommitVersion, delta::Delta, interface::change::Change};
8
9pub type CdcProduceHandle = ActorHandle<CdcProduceMessage>;
10
11#[derive(Clone, Debug)]
12pub enum CdcProduceMessage {
13	Produce {
14		version: CommitVersion,
15		changed_at: DateTime,
16		deltas: Vec<Delta>,
17		flow_changes: Vec<Change>,
18	},
19}
20
21pub type CdcPollHandle = ActorHandle<CdcPollMessage>;
22
23pub enum CdcPollMessage {
24	Poll,
25
26	CheckWatermark,
27
28	ConsumeResponse {
29		generation: u64,
30		result: Result<()>,
31	},
32
33	ResyncResponse {
34		generation: u64,
35		result: Result<CommitVersion>,
36	},
37
38	Tick,
39
40	Shutdown,
41}