Expand description
Data replication and synchronization for ruvector
This crate provides comprehensive replication capabilities including:
- Multi-node replica management
- Synchronous, asynchronous, and semi-synchronous replication modes
- Conflict resolution with vector clocks and CRDTs
- Change data capture and streaming
- Automatic failover and split-brain prevention
§Examples
use ruvector_replication::{ReplicaSet, ReplicaRole, SyncMode, SyncManager, ReplicationLog};
use std::sync::Arc;
fn example() -> Result<(), Box<dyn std::error::Error>> {
// Create a replica set
let mut replica_set = ReplicaSet::new("cluster-1");
// Add replicas
replica_set.add_replica("replica-1", "192.168.1.10:9001", ReplicaRole::Primary)?;
replica_set.add_replica("replica-2", "192.168.1.11:9001", ReplicaRole::Secondary)?;
// Create sync manager and configure synchronization
let log = Arc::new(ReplicationLog::new("replica-1"));
let manager = SyncManager::new(Arc::new(replica_set), log);
manager.set_sync_mode(SyncMode::SemiSync { min_replicas: 1 });
Ok(())
}Re-exports§
pub use conflict::ConflictResolver;pub use conflict::LastWriteWins;pub use conflict::MergeFunction;pub use conflict::VectorClock;pub use failover::FailoverManager;pub use failover::FailoverPolicy;pub use failover::HealthStatus;pub use replica::Replica;pub use replica::ReplicaRole;pub use replica::ReplicaSet;pub use replica::ReplicaStatus;pub use stream::ChangeEvent;pub use stream::ChangeOperation;pub use stream::ReplicationStream;pub use sync::LogEntry;pub use sync::ReplicationLog;pub use sync::SyncManager;pub use sync::SyncMode;
Modules§
- conflict
- Conflict resolution strategies for distributed replication
- failover
- Automatic failover and high availability
- replica
- Replica management and coordination
- stream
- Change data capture and streaming for replication
- sync
- Synchronization modes and replication log management
Enums§
- Replication
Error - Errors that can occur during replication operations
Type Aliases§
- Result
- Result type for replication operations