Skip to main content

reddb_server/cluster/
mod.rs

1//! Shared cluster identity and membership model.
2
3pub mod bootstrap_authority;
4pub mod commit_resolution;
5pub mod cross_range;
6pub mod drain;
7pub mod identity;
8pub mod join;
9pub mod membership;
10pub mod move_range;
11pub mod ownership;
12pub mod ownership_force;
13pub mod ownership_lease;
14pub mod ownership_transition;
15pub mod placement;
16pub mod routing;
17pub mod slot;
18pub mod supervisor;
19pub mod topology;
20
21pub use bootstrap_authority::{
22    authorize as authorize_cluster_bootstrap, authorize_vault_bootstrap, is_cluster_shaped,
23    plan_vault_bootstrap, AuthBootstrapInput, BootstrapDisposition, VaultBootstrapPlan,
24};
25pub use commit_resolution::{
26    is_local_ack, resolve_commit_policy, CollectionDataModel, CommitPolicyResolution,
27    CommitPolicyViolation, FailoverEligibility, GuardrailDisposition, HaIntent, ResolutionSource,
28};
29pub use cross_range::{
30    ConsistentReadLeg, ConsistentReadPlan, ConsistentReadReject, GlobalReadWatermark, KeyTarget,
31    PinnedTarget, RangeParticipant, ReadFanout, ReadFanoutReject, ReadLeg, ResolvedTarget,
32    WriteTransactionPlan, WriteTransactionReject, WriterParticipation,
33};
34pub use drain::{
35    drain_status, plan_drain, plan_force_remove, run_drain, run_force_remove, DrainBlock,
36    DrainBlockReason, DrainOutcome, DrainPlan, DrainStatus, DrainStep, ForceCapability,
37    ForceRemoveAudit, ForceRemoveOrder, ForceRemoveOrderError, ForceRemovePlan, ForceRemoveResult,
38    ForcedBlock, ForcedPromotion, OwnedHandoff, RemovalRejection, ReplicaEvacuation,
39};
40pub use identity::{
41    ClusterVoterIdentity, NodeIdentity, NodeIdentityError, ReplicationPeerIdentity,
42};
43pub use join::{ControlPlaneSnapshot, JoinGrant, JoinRejection, JoinRequest, SeedAuthority};
44pub use membership::{
45    AdmissionOutcome, BaselineAssessment, ClusterId, ClusterIdError, ClusterMember, MemberKind,
46    MemberState, MembershipCatalog, RESILIENT_DATA_MEMBER_BASELINE,
47};
48pub use move_range::{
49    classify_move, recover_interrupted_move, split_range, MoveError, MoveKind, MovePhase,
50    MoveRange, MoveRecovery, RangeSplit, SplitError, SplitPolicy, SplitSide,
51};
52pub use ownership::{
53    CatalogError, CatalogVersion, CollectionId, CollectionIdError, OwnershipEpoch,
54    PlacementMetadata, RangeBound, RangeBounds, RangeBoundsError, RangeId, RangeOwnership,
55    RangeRole, RangeWriteReject, ShardKeyMode, ShardOwnershipCatalog, UpdateOutcome,
56};
57pub use ownership_force::{
58    force_transition, EmptyOperatorReason, ForceDenial, ForceFailure, ForceTransitionCapability,
59    ForcedTransitionAudit, ForcedTransitionDisposition, ForcedTransitionRequest, OperatorReason,
60};
61pub use ownership_lease::{
62    admit_durable_write, DurableWriteReject, FenceReason, LeaseFenceRejection, LeasedOwner,
63    OwnerWriteMode, OwnershipLease, RangeRequest, SupervisorTerm,
64};
65pub use ownership_transition::{
66    prepare, run_transition, CatchUpEvidence, CommitWatermark, InvalidCandidateReason,
67    PreparedTransition, TransitionError, TransitionKind, TransitionOutcome, TransitionRejection,
68    TransitionRequest,
69};
70pub use placement::{
71    HotspotRange, MemberCapacity, MoveReason, PlacementPolicy, PlacementSignals, PlannedMove,
72    RangeLoad, RebalancePlan, WeightedPlacementPlanner, NEUTRAL_OPERATOR_WEIGHT,
73};
74pub use routing::{
75    RedirectReason, RequestOperation, RouteDecision, RoutedRequest, RoutingHint, RoutingPolicy,
76    DEFAULT_MAX_FORWARD_PAYLOAD,
77};
78pub use slot::{
79    hash_shard_key_to_range_key, hash_shard_key_to_slot, HashSlot, HashSlotError,
80    PRODUCTION_HASH_SLOT_COUNT,
81};
82pub use supervisor::{
83    BlockedFailover, BlockedReason, ClusterSignals, ClusterSupervisor, FailoverPlan, HealthClass,
84    HealthPolicy, HealthScore, MemberSignals, PlannedPromotion,
85};
86pub use topology::{
87    ClientTopology, HintOutcome, RefreshOutcome, TopologyRange, TopologySnapshot, TopologyUpdate,
88};