Skip to main content

aegis_replication/
lib.rs

1//! Aegis Replication - Distributed Systems
2//!
3//! Raft-based consensus and replication for distributed Aegis deployments.
4//! Provides leader election, log replication, sharding, and distributed transactions.
5//!
6//! Key Features:
7//! - Raft consensus algorithm implementation
8//! - Multi-master replication support
9//! - Consistent hashing and sharding
10//! - Distributed transactions (2PC)
11//! - Vector clocks for causality tracking
12//! - CRDTs for conflict-free replication
13//! - Automatic failover and recovery
14//!
15//! @version 0.1.0
16//! @author AutomataNexus Development Team
17
18pub mod raft;
19pub mod log;
20pub mod state;
21pub mod node;
22pub mod cluster;
23pub mod transport;
24pub mod http_transport;
25pub mod engine;
26pub mod hash;
27pub mod shard;
28pub mod partition;
29pub mod router;
30pub mod transaction;
31pub mod vector_clock;
32pub mod crdt;
33
34pub use raft::{RaftNode, RaftState, RaftConfig};
35pub use log::{LogEntry, LogIndex, ReplicatedLog};
36pub use state::{StateMachine, StateMachineBackend, DatabaseStateMachine, DatabaseOperationHandler, NoOpDatabaseHandler, Command, CommandType, CommandResult, Snapshot};
37pub use node::{NodeId, NodeInfo, NodeStatus};
38pub use cluster::{Cluster, ClusterConfig, ClusterState};
39pub use transport::{Message, MessageType, Transport};
40pub use http_transport::HttpTransport;
41pub use engine::ReplicationEngine;
42pub use hash::{ConsistentHash, HashRing, VirtualNode};
43pub use shard::{Shard, ShardId, ShardManager, ShardState};
44pub use partition::{PartitionKey, PartitionStrategy, PartitionRange};
45pub use router::{ShardRouter, RoutingTable, RouteDecision};
46pub use transaction::{TransactionId, TransactionState, TransactionCoordinator, DistributedTransaction};
47pub use vector_clock::{VectorClock, VectorClockOrdering, HybridClock, HybridTimestamp, LamportClock};
48pub use crdt::{CRDT, GCounter, PNCounter, GSet, TwoPSet, LWWRegister, MVRegister, ORSet, LWWMap};