Skip to main content

Module replication

Module replication 

Source
Expand description

Replication Module

Implements single-primary, multi-replica replication via WAL streaming.

§Architecture

  • Primary: accepts writes and streams WAL records to replicas
  • Replica: read-only, connects to primary for WAL streaming
  • Initial sync via snapshot transfer, then incremental WAL

§Usage

// Primary
let options = RedDBOptions::persistent("./primary-data")
    .with_replication(ReplicationConfig::primary());

// Replica
let options = RedDBOptions::persistent("./replica-data")
    .with_replication(ReplicationConfig::replica("http://primary:50051"));

Re-exports§

pub use bookmark::BookmarkDecodeError;
pub use bookmark::CausalBookmark;
pub use cascade::plan_upstream;
pub use cascade::CascadeRefusal;
pub use cascade::CascadeRelay;
pub use cascade::CascadeUpstream;
pub use cascade::DownstreamSlot;
pub use cascade::ReplicaClass;
pub use cascade::UpstreamChoice;
pub use commit_policy::CommitPolicy;
pub use commit_waiter::AwaitOutcome;
pub use commit_waiter::CommitWaiter;
pub use election::quorum_threshold;
pub use election::randomized_election_timeout;
pub use election::ElectionCoordinator;
pub use election::ElectionOutcome;
pub use election::ElectionRequest;
pub use election::ElectionTransport;
pub use election::FileLastVoteStore;
pub use election::LastVote;
pub use election::LastVoteError;
pub use election::LastVoteStore;
pub use election::Member;
pub use election::MemberKind;
pub use election::MemoryLastVoteStore;
pub use election::RefusalReason;
pub use election::VoteDecision;
pub use election::VoteRequest;
pub use election::Voter;
pub use election::VotingState;
pub use failover::FailoverCoordinator;
pub use failover::FailoverError;
pub use failover::FailoverMode;
pub use failover::FailoverNode;
pub use failover::FailoverOutcome;
pub use failover::FailoverRequest;
pub use failover::FailoverTransport;
pub use failover::NodeRole;
pub use failover::RoleAssignment;
pub use fence::FenceBoundary;
pub use fence::FenceVerdict;
pub use fence::FileTermStore;
pub use fence::MemoryTermStore;
pub use fence::StaleTermFenced;
pub use fence::TermFence;
pub use fence::TermStore;
pub use fence::TermStoreError;
pub use flow_control::Admission;
pub use flow_control::FlowController;
pub use lease::LeaseError;
pub use lease::LeaseStore;
pub use lease::WriterLease;
pub use quorum::QuorumConfig;
pub use quorum::QuorumCoordinator;
pub use quorum::QuorumError;
pub use rollback::DivergentTail;
pub use rollback::RollbackCoordinator;
pub use rollback::RollbackError;
pub use rollback::RollbackEvent;
pub use rollback::RollbackOutcome;
pub use rollback::RollbackPlan;
pub use rollback::RollbackRequest;
pub use rollback::RollbackTransport;
pub use rollback::TailRecord;
pub use swap_db::RebootstrapInProgress;
pub use swap_db::SwapDb;
pub use topology_advertiser::LagConfig;
pub use topology_advertiser::TopologyAdvertiser;
pub use topology_advertiser::TopologyAuthGate;
pub use topology_advertiser::DEFAULT_REPLICA_TIMEOUT_MS;
pub use topology_advertiser::TOPOLOGY_READ_CAPABILITY;
pub use witness::RuntimeProfile;
pub use witness::WitnessSupervisor;

Modules§

bookmark
Causal bookmark token helpers.
cascade
Cascading replication for async read-replicas (issue #838, PRD #819).
cdc
Change Data Capture (CDC) — stream of database change events.
commit_policy
Primary commit policies (PLAN.md Phase 11.4).
commit_waiter
Synchronous commit waiter (PLAN.md Phase 11.4 — ack_n).
election
Term-based, quorum-gated automatic election (issue #834, PRD #819, ADR 0030).
failover
Coordinated zero-RPO failover (issue #833, PRD #819).
fence
Stale-term fencing for a returning ex-primary (issue #835, PRD #819, ADR 0030).
flow_control
Write-admission flow control keyed on in-quorum replica lag (issue #826).
lease
Serverless writer lease (PLAN.md Phase 5 / W6).
logical
Logical replication helpers shared by replica apply and point-in-time restore.
primary
Primary-side replication: WAL record production and snapshot serving.
quorum
Quorum-based commit coordination (Phase 2.6 multi-region PG parity).
replica
Replica-side replication: connects to primary, consumes WAL records.
rollback
Auto-rollback of a deposed primary to the common point (issue #840, PRD #819, ADR 0030).
scheduler
Backup Scheduler — automatic periodic snapshots with optional remote upload.
swap_db
Stay-readable re-bootstrap with an atomic dataset swap (issue #837, PRD #819).
topology_advertiser
Server-side TopologyAdvertiser (issue #167).
witness
Witness runtime profile (issue #836, PRD #819, ADR 0030).

Structs§

ReplicationConfig
Configuration for replication.

Enums§

ReplicationRole
Role of this RedDB instance in a replication cluster.

Constants§

DEFAULT_REPLICATION_TERM
DEFAULT_SLOT_IDLE_TIMEOUT_MS
DEFAULT_SLOT_RETENTION_MAX_LAG_LSN