pub(crate) mod builder;
pub(crate) mod ingestion;
pub(crate) mod metrics;
pub(crate) use builder::{LiveOnlyTaskConfig, LiveWithBackupsTaskConfig, TaskBuilder};
pub(crate) use metrics::MetricsStreamingTask;
use crate::DiskBackupPolicy;
use std::{path::PathBuf, sync::Arc, time::Duration};
pub(crate) const DATA_CHANNEL_CAPACITY: usize = 1024 * 100;
pub(crate) const CONTROL_CHANNEL_CAPACITY: usize = 1024;
pub(crate) const CHECKPOINT_TIMEOUT: Duration = Duration::from_secs(10);
#[derive(Debug, Clone, PartialEq, Eq)]
pub(crate) enum ControlMessage {
BackupFull,
ReingestBackups { backup_files: Vec<PathBuf> },
SignalNextCheckpoint,
CheckpointComplete {
first_message_id: u64,
last_message_id: u64,
},
CheckpointNeedsReingestion {
first_message_id: u64,
last_message_id: u64,
},
Shutdown,
}
#[derive(Clone)]
pub(crate) struct RecoveryConfig {
pub(crate) backups_directory: String,
pub(crate) backups_prefix: String,
pub(crate) backup_policy: DiskBackupPolicy,
}
#[derive(Debug, Clone)]
pub(crate) struct DataMessage {
pub(crate) message_id: u64,
pub(crate) request: Arc<sift_rs::ingest::v1::IngestWithConfigDataStreamRequest>,
pub(crate) dropped_for_ingestion: bool,
}