Skip to main content

engine/distributed/
mod.rs

1//! Distributed Mode for Dakera
2//!
3//! Provides distributed vector search capabilities:
4//!
5//! - **Sharding**: Consistent hashing and range-based partitioning
6//! - **Routing**: Scatter-gather query execution across shards
7//! - **Replication**: Read replicas with automatic failover
8//! - **Coordination**: Cluster membership and health monitoring
9//! - **Load Balancing**: Request distribution strategies
10//! - **Gossip Protocol**: Automatic node discovery and failure detection
11//! - **Replica Management**: Configurable placement and synchronization
12//! - **Leader Election**: Lease-based election for write coordination
13//! - **Rolling Upgrades**: Coordinated cluster upgrades with rollback support
14//! - **Auto Rebalancing**: Automatic shard redistribution on topology changes
15
16pub mod cluster;
17pub mod election;
18pub mod gossip;
19pub mod rebalance;
20pub mod replication;
21pub mod routing;
22pub mod sharding;
23pub mod upgrades;
24
25pub use cluster::{
26    ClusterConfig, ClusterCoordinator, ClusterState, NodeHealth, NodeInfo, NodeRole, NodeStatus,
27};
28pub use election::{
29    ElectionConfig, ElectionError, ElectionEvent, ElectionManager, ElectionState, ElectionStats,
30    LeaderElection, LeaderInfo, Vote, VoteRequest,
31};
32pub use gossip::{
33    GossipConfig, GossipError, GossipEvent, GossipMember, GossipMessage, GossipProtocol,
34    MemberState, MemberStateUpdate,
35};
36pub use rebalance::{
37    MoveState, NodeLoad, RebalanceConfig, RebalanceError, RebalanceManager, RebalancePlan,
38    RebalanceState, RebalanceStats, RebalanceTrigger, ShardMove,
39};
40pub use replication::{
41    NodeTopology, PlacementStrategy, ReplicaInfo, ReplicaManager, ReplicaSet, ReplicaState,
42    ReplicationConfig, ReplicationError, ReplicationStats, WriteAckMode,
43};
44pub use routing::{QueryRouter, RouterConfig, RoutingStrategy};
45pub use sharding::{
46    ConsistentHashRing, PartitionInfo, ShardAssignment, ShardingConfig, ShardingStrategy,
47};
48pub use upgrades::{
49    NodeUpgradeInfo, NodeUpgradeState, UpgradeConfig, UpgradeError, UpgradeManager, UpgradePlan,
50    UpgradeStats, UpgradeStatus, Version,
51};