scylla/cluster/mod.rs
1//! This module holds entities that represent the cluster as a whole,
2//! nodes in the cluster (together with a pool of connections),
3//! the cluster's state, and logic for ruling out specific nodes.
4//!
5//! This includes:
6//! - node's representation ([Node]),
7//! - [metadata] representation, fetching and management, including:
8//! - topology metadata,
9//! - schema metadata,
10// - tablet metadata,
11//! - [ClusterState], which is a snapshot of the cluster's state.
12//! - [ClusterState] is replaced atomically upon a metadata refresh,
13//! preventing any issues arising from mutability, including races.
14// - [ControlConnection](control_connection::ControlConnection), which
15// is the single connection used to fetch metadata and receive events
16// from the cluster.
17
18mod worker;
19pub(crate) use worker::{use_keyspace_result, Cluster, ClusterNeatDebug};
20
21mod state;
22pub use state::ClusterState;
23
24pub(crate) mod node;
25pub use node::{KnownNode, Node, NodeAddr, NodeRef};
26
27mod control_connection;
28
29pub mod metadata;