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;
9mod lease_deadline;
10mod namespace_proof;
11pub mod process_lease;
12pub mod snapshot;
13
14pub use crate::checkpoint::{
15    CheckpointAssignmentAdoption, CheckpointAssignmentFence, CheckpointParticipant, LeaderProof,
16    LeaderProofOwner,
17};
18pub use barrier::{
19    BarrierAck, BarrierAnnouncement, BarrierCoordinator, ClusterKv, InMemoryKv, Phase,
20    QuorumOutcome, ACK_KEY, ANNOUNCEMENT_KEY,
21};
22#[cfg(feature = "cluster")]
23pub use controller::CheckpointPrepareObservation;
24pub use controller::{
25    ClusterController, RecoverPhase, RecoveryAdmissionSnapshot, RecoveryAnnouncement,
26    RecoveryControlError, RecoveryFault, RecoveryFaultReportOutcome, RecoveryFaultRequest,
27    RecoveryRound, RecoveryRoundId, RecoveryStoppedReport, ReleaseCommitStatus,
28};
29// Re-exported from `crate::checkpoint_decision` (lives outside the
30// cluster gate because single-instance also relies on it for crash-safe
31// 2PC). Callers that already qualify with `cluster::control::…` keep
32// working.
33pub use crate::checkpoint_decision::{CheckpointDecisionStore, DecisionError};
34pub use catalog_manifest::{
35    CatalogManifest, CatalogManifestEntry, CatalogManifestError, CatalogManifestRef,
36    CatalogManifestStore, CatalogObjectKind, CatalogSealOutcome,
37};
38pub use leader::leader_of;
39pub use leader_lease::{
40    lease_grants_leadership, lease_grants_proof, AssignmentDrainDecision, AssignmentDrainVerdict,
41    AssignmentRecoveryDecision, ClusterCheckpointAuthorityError, ClusterOutcomeInventory,
42    ClusterOutcomeRetentionBoundary, LeaderCandidacy, LeaderLease, LeaderLeaseConfig,
43    LeaderLeaseManager, LeaderLeaseObservation, LeaderLeaseOwner, LeaderLeaseStore, LeaseError,
44    LeaseOutcome, RecordAssignmentDrainDecisionResult, RecordAssignmentRecoveryDecisionResult,
45};
46pub use lease_deadline::LeaseDeadline;
47pub use namespace_proof::{
48    prove_shared_object_store_namespaces, NamespaceProofError, VerifiedClusterNamespaces,
49    MAX_SHARED_NAMESPACE_PROOF_TIMEOUT,
50};
51pub use process_lease::{
52    ProcessLease, ProcessLeaseAuthority, ProcessLeaseConfig, ProcessLeaseError, ProcessLeaseFence,
53    ProcessLeaseManager, ProcessLeaseObservation, ProcessLeaseOutcome, ProcessLeaseStore,
54};
55pub use snapshot::{
56    AssignmentSnapshot, AssignmentSnapshotRef, AssignmentSnapshotStore, RotateOutcome,
57    SnapshotError,
58};
59
60#[cfg(feature = "cluster")]
61pub mod chitchat_kv;
62#[cfg(feature = "cluster")]
63pub use chitchat_kv::ChitchatKv;
64
65#[cfg(feature = "cluster")]
66pub mod tls;
67#[cfg(feature = "cluster")]
68pub use tls::{claim_cluster_plaintext, set_cluster_tls, ClusterTls};