Skip to main content

laminar_core/cluster/control/
mod.rs

1//! Cluster control plane: leader election, assignment snapshots, and
2//! barrier coordination.
3
4pub mod barrier;
5pub mod catalog_manifest;
6pub mod controller;
7pub mod leader;
8pub mod leader_lease;
9pub mod snapshot;
10
11pub use barrier::{
12    BarrierAck, BarrierAnnouncement, BarrierCoordinator, ClusterKv, InMemoryKv, Phase,
13    QuorumOutcome, ACK_KEY, ANNOUNCEMENT_KEY,
14};
15pub use controller::ClusterController;
16// Re-exported from `crate::checkpoint_decision` (lives outside the
17// cluster gate because single-instance also relies on it for crash-safe
18// 2PC). Callers that already qualify with `cluster::control::…` keep
19// working.
20pub use crate::checkpoint_decision::{CheckpointDecisionStore, DecisionError};
21pub use catalog_manifest::{
22    CatalogManifest, CatalogManifestEntry, CatalogManifestError, CatalogManifestStore,
23};
24pub use leader::leader_of;
25pub use leader_lease::{
26    lease_grants_leadership, LeaderLease, LeaderLeaseConfig, LeaderLeaseManager, LeaderLeaseStore,
27    LeaseError, LeaseOutcome,
28};
29pub use snapshot::{AssignmentSnapshot, AssignmentSnapshotStore, RotateOutcome, SnapshotError};
30
31#[cfg(feature = "cluster")]
32pub mod chitchat_kv;
33#[cfg(feature = "cluster")]
34pub use chitchat_kv::ChitchatKv;
35
36#[cfg(feature = "cluster")]
37pub mod query;
38#[cfg(feature = "cluster")]
39pub use query::{
40    remote_scan_client, QueryClientPool, QueryHandlerSlot, RemoteBatchStream, RemoteQueryHandler,
41};
42
43#[cfg(feature = "cluster")]
44pub mod tls;
45#[cfg(feature = "cluster")]
46pub use tls::{set_cluster_tls, ClusterTls};