1mod auth;
2mod cluster_gateway;
3mod cluster_grain_ref;
4mod cluster_silo;
5mod connection_pool;
6mod cross_cluster_directory;
7pub mod discovery;
8mod error;
9mod failover;
10mod failure_detector;
11mod hash_ring;
12pub mod health_server;
13mod membership;
14mod message_registry;
15mod multi_cluster;
16mod network_message;
17mod placement;
18mod rebalancer;
19mod replication_consumer;
20mod replication_producer;
21pub(crate) mod store_wrapper;
22pub(crate) mod swim;
23mod retry;
24mod transport;
25
26#[cfg(feature = "tcp-transport")]
27pub mod tcp_transport;
28
29pub mod proto {
30 tonic::include_proto!("orlando.cluster");
31}
32
33pub use auth::{ClusterAuth, SharedSecretAuth};
34pub use cluster_gateway::ClusterGatewayService;
35pub use cluster_grain_ref::ClusterGrainRef;
36pub use cluster_silo::{ClusterSilo, ClusterSiloBuilder};
37pub use orlando_core::ClusterId;
38pub use connection_pool::ConnectionPool;
39pub use cross_cluster_directory::{
40 CrossClusterDirectory, DirectoryError, GrainOwnership, InMemoryCrossClusterDirectory,
41};
42pub use error::ClusterError;
43pub use failover::{FailoverConfig, FailoverManager, FailoverPhase};
44pub use failure_detector::{FailureDetector, FailureDetectorConfig, MembershipChange};
45pub use hash_ring::{HashRing, SiloAddress};
46pub use health_server::{StoreProbe, run_health_server};
47pub use membership::MembershipService;
48pub use message_registry::MessageRegistry;
49pub use multi_cluster::{ClusterHealth, MultiClusterConfig, PeerStatus};
50pub use network_message::{Encoding, NetworkMessage};
51pub use placement::{HashBasedPlacement, PlacementStrategy, PreferLocalPlacement, RandomPlacement};
52pub use discovery::{DnsMembershipProvider, MembershipProvider, StaticSeedProvider};
53#[cfg(feature = "consul")]
54pub use discovery::ConsulMembershipProvider;
55pub use rebalancer::Rebalancer;
56pub use replication_consumer::ReplicationConsumer;
57pub use replication_producer::spawn_replication_pump;
58pub use store_wrapper::{ReplicaEntry, ReplicaStore};
59pub use retry::RetryPolicy;
60pub use transport::GrainTransportService;