Skip to main content

Crate aegis_replication

Crate aegis_replication 

Source
Expand description

Aegis Replication - Distributed Systems

Raft-based consensus and replication for distributed Aegis deployments. Provides leader election, log replication, sharding, and distributed transactions.

Key Features:

  • Raft consensus algorithm implementation
  • Multi-master replication support
  • Consistent hashing and sharding
  • Distributed transactions (2PC)
  • Vector clocks for causality tracking
  • CRDTs for conflict-free replication
  • Automatic failover and recovery

@version 0.1.0 @author AutomataNexus Development Team

Re-exports§

pub use raft::RaftNode;
pub use raft::RaftState;
pub use raft::RaftConfig;
pub use log::LogEntry;
pub use log::LogIndex;
pub use log::ReplicatedLog;
pub use state::StateMachine;
pub use state::StateMachineBackend;
pub use state::DatabaseStateMachine;
pub use state::DatabaseOperationHandler;
pub use state::NoOpDatabaseHandler;
pub use state::Command;
pub use state::CommandType;
pub use state::CommandResult;
pub use state::Snapshot;
pub use node::NodeId;
pub use node::NodeInfo;
pub use node::NodeStatus;
pub use cluster::Cluster;
pub use cluster::ClusterConfig;
pub use cluster::ClusterState;
pub use transport::Message;
pub use transport::MessageType;
pub use transport::Transport;
pub use http_transport::HttpTransport;
pub use engine::ReplicationEngine;
pub use hash::ConsistentHash;
pub use hash::HashRing;
pub use hash::VirtualNode;
pub use shard::Shard;
pub use shard::ShardId;
pub use shard::ShardManager;
pub use shard::ShardState;
pub use partition::PartitionKey;
pub use partition::PartitionStrategy;
pub use partition::PartitionRange;
pub use router::ShardRouter;
pub use router::RoutingTable;
pub use router::RouteDecision;
pub use transaction::TransactionId;
pub use transaction::TransactionState;
pub use transaction::TransactionCoordinator;
pub use transaction::DistributedTransaction;
pub use vector_clock::VectorClock;
pub use vector_clock::VectorClockOrdering;
pub use vector_clock::HybridClock;
pub use vector_clock::HybridTimestamp;
pub use vector_clock::LamportClock;
pub use crdt::CRDT;
pub use crdt::GCounter;
pub use crdt::PNCounter;
pub use crdt::GSet;
pub use crdt::TwoPSet;
pub use crdt::LWWRegister;
pub use crdt::MVRegister;
pub use crdt::ORSet;
pub use crdt::LWWMap;

Modules§

cluster
Aegis Cluster Management
crdt
Aegis CRDTs (Conflict-free Replicated Data Types)
engine
Aegis Replication Engine
hash
Aegis Consistent Hashing
http_transport
HTTP Transport for Raft Communication
log
Aegis Replication Log
node
Aegis Replication Node
partition
Aegis Partitioning
raft
Aegis Raft Consensus
router
Aegis Shard Router
shard
Aegis Shard Management
state
Aegis Replication State Machine
transaction
Aegis Distributed Transactions
transport
Aegis Replication Transport
vector_clock
Aegis Vector Clocks