1pub mod applied_watcher;
16pub mod array_routing;
17pub mod auth;
18pub mod bootstrap;
19#[doc(hidden)]
20pub mod bootstrap_listener;
21#[doc(hidden)]
22pub mod calvin;
23pub mod catalog;
24#[doc(hidden)]
25pub mod circuit_breaker;
26pub mod closed_timestamp;
27pub mod cluster_epoch;
28pub mod cluster_info;
29pub mod conf_change;
30pub mod cross_shard_txn;
31pub mod decommission;
32pub mod distributed_array;
33pub mod distributed_document;
34pub mod distributed_graph;
35pub mod distributed_join;
36pub mod distributed_spatial;
37pub mod distributed_timeseries;
38pub mod distributed_vector;
39pub mod error;
40pub mod follower_read;
41pub mod forward;
42#[doc(hidden)]
43pub mod ghost;
44#[doc(hidden)]
45pub mod ghost_sweeper;
46pub mod health;
47pub mod install_snapshot;
48pub mod lifecycle;
49pub mod lifecycle_state;
50pub mod loop_metrics;
51pub mod metadata_group;
52pub mod migration;
53#[doc(hidden)]
54pub mod migration_executor;
55pub mod mirror;
56pub mod multi_raft;
57pub mod quic_transport;
58pub mod raft_loop;
59pub mod raft_storage;
60pub mod rdma_transport;
61pub mod reachability;
62pub mod readiness;
63pub mod rebalance;
64pub mod rebalance_scheduler;
65pub mod rebalancer;
66pub mod routing;
67pub mod routing_liveness;
68pub mod rpc_codec;
69pub mod shard_split;
70pub mod subsystem;
71pub mod swim;
72pub mod sync_frame_versioned;
73pub mod topology;
74pub mod transport;
75pub mod vshard_handler;
76pub mod wire;
77pub mod wire_version;
78
79pub use applied_watcher::{AppliedIndexWatcher, GroupAppliedWatchers, WaitOutcome};
80pub use bootstrap::{
81 ClusterConfig, ClusterState, JoinRetryPolicy, start_cluster, start_cluster_subsystems,
82};
83#[doc(hidden)]
84pub use calvin::{EngineKeySet, EpochBatch, ReadWriteSet, SequencedTxn, SortedVec, TxClass};
85pub use catalog::ClusterCatalog;
86#[doc(hidden)]
87pub use circuit_breaker::BreakerSnapshot;
88pub use closed_timestamp::ClosedTimestampTracker;
89pub use cluster_epoch::{
90 bump_local_cluster_epoch, current_local_cluster_epoch, init_local_cluster_epoch_from_catalog,
91 observe_peer_cluster_epoch, set_local_cluster_epoch,
92};
93pub use cluster_info::{
94 ClusterInfoSnapshot, ClusterObserver, GroupSnapshot, GroupStatusProvider, PeerSnapshot,
95};
96pub use conf_change::{ConfChange, ConfChangeType};
97pub use decommission::{
98 DecommissionCoordinator, DecommissionObserver, DecommissionPlan, DecommissionRunResult,
99 DecommissionSafetyError, MetadataProposer, check_can_decommission, plan_full_decommission,
100};
101pub use error::{
102 CalvinError, ClusterError, MigrationCheckpointError, MigrationRecoveryError, Result,
103};
104pub use follower_read::{FollowerReadGate, ReadLevel};
105pub use forward::{NoopPlanExecutor, PlanExecutor};
106pub use ghost::{GhostStub, GhostTable};
107pub use health::{HealthConfig, HealthMonitor};
108pub use lifecycle_state::{ClusterLifecycleState, ClusterLifecycleTracker};
109pub use loop_metrics::{LoopMetrics, LoopMetricsRegistry};
110pub use migration::{MigrationPhase, MigrationState};
111pub use migration_executor::{
112 MigrationExecutor, MigrationRequest, MigrationResult, MigrationSnapshot, MigrationTracker,
113};
114pub use multi_raft::{GroupStatus, MultiRaft};
115pub use raft_loop::{CommitApplier, RaftLoop, SnapshotQuarantineHook, VShardEnvelopeHandler};
116pub use reachability::{
117 NoopProber, ReachabilityDriver, ReachabilityDriverConfig, ReachabilityProber, TransportProber,
118};
119pub use rebalance::{RebalancePlan, compute_plan, plan_to_requests};
120pub use rebalancer::{
121 AlwaysReadyGate, ElectionGate, LoadMetrics, LoadMetricsProvider, LoadWeights,
122 MigrationDispatcher, RebalancerKickHook, RebalancerLoop, RebalancerLoopConfig,
123 RebalancerPlanConfig, compute_load_based_plan, normalized_score,
124};
125pub use routing::RoutingTable;
126pub use routing_liveness::{NodeIdResolver, RoutingLivenessHook};
127pub use rpc_codec::{MacKey, RaftRpc};
128pub use topology::{ClusterTopology, NodeInfo, NodeState};
129pub use transport::{
130 IDENTITY_MISMATCH_QUIC_ERROR, NexarTransport, NoopIdentityStore, PeerIdentityStore,
131 PinnedClientVerifier, PinnedServerVerifier, RaftRpcHandler, TlsCredentials,
132 TransportCredentials, TransportPeerSnapshot, VerifyMethod, VerifyOutcome, ca_fingerprint,
133 ca_fingerprint_hex, generate_node_credentials, generate_node_credentials_multi_san,
134 insecure_transport_count, issue_leaf_for_sans, load_crls_from_pem,
135 make_raft_client_config_mtls, make_raft_server_config_mtls, spki_pin_from_cert_der,
136};
137pub use wire::VShardEnvelope;
138
139pub use cross_shard_txn::{
140 EdgeValidationRequest, EdgeValidationResult, GsiAction, GsiForwardEntry,
141};
142pub use metadata_group::entry::JoinTokenTransitionKind;
143pub use metadata_group::{
144 CacheApplier, Compensation, DescriptorHeader, DescriptorId, DescriptorKind, DescriptorLease,
145 DescriptorState, METADATA_GROUP_ID, MetadataApplier, MetadataCache, MetadataEntry,
146 MigrationCheckpointPayload, MigrationId, MigrationPhaseTag, NoopMetadataApplier,
147 PersistedMigrationCheckpoint, RoutingChange, SharedMigrationStateTable, TopologyChange,
148 apply_migration_abort, apply_migration_checkpoint, decode_entry, encode_entry, new_shared,
149};
150pub use migration_executor::recover_in_flight_migrations;
151pub use quic_transport::{QuicTransport, QuicTransportConfig};
152
153pub use array_routing::{tile_id_of_coord, vshard_for_array_coord, vshard_for_array_tile};
154pub use distributed_join::{BroadcastJoinRequest, JoinStrategy, ShufflePartition, select_strategy};
155pub use lifecycle::{
156 DecommissionResult, handle_learner_promotion, handle_node_join, plan_decommission,
157};
158pub use rdma_transport::{RdmaConfig, RdmaTransport};
159pub use rebalance_scheduler::{NodeMetrics, RebalanceScheduler, RebalanceTrigger, SchedulerConfig};
160pub use shard_split::{SplitPlan, SplitStrategy, plan_graph_split, plan_vector_split};
161pub use subsystem::{
162 BootstrapCtx, BootstrapError, ClusterHealth, ClusterSubsystem, RunningCluster, ShutdownError,
163 SubsystemHandle, SubsystemHealth, SubsystemRegistry, TopoError, topo_sort,
164};
165pub use swim::bootstrap::spawn_with_subscribers as spawn_swim_with_subscribers;
166pub use swim::{
167 Incarnation, Member, MemberState, MembershipList, MembershipSubscriber, SwimConfig, SwimError,
168 SwimHandle, UdpTransport, spawn as spawn_swim,
169};
170
171pub use auth::{
172 AuditEvent, AuditWriter, AuthenticatedJoinBundle, BundleError, InMemoryTokenStore, JoinOutcome,
173 JoinTokenLifecycle, JoinTokenState, NoopAuditWriter, RaftBackedTokenStore,
174 SharedTokenStateMirror, TokenError, TokenStateBackend, TokenStateError, VecAuditWriter,
175 apply_token_transition_to_mirror, derive_mac_key, issue_token, open_bundle, seal_bundle,
176 spawn_inflight_timeout, token_hash, verify_token,
177};
178
179pub use wire_version::handshake_io::{
180 perform_version_handshake_client, perform_version_handshake_server,
181};
182pub use wire_version::{
183 VersionHandshake, VersionHandshakeAck, VersionRange, Versioned, WireVersion, WireVersionError,
184 WireVersionMetrics, decode_versioned, encode_versioned, local_version_range, negotiate,
185 unwrap_bytes_versioned, wrap_bytes_versioned,
186};