Crate ruvector_replication

Crate ruvector_replication 

Source
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§

ReplicationError
Errors that can occur during replication operations

Type Aliases§

Result
Result type for replication operations