Skip to main content

atomr_cluster/
lib.rs

1//! atomr-cluster.
2//!
3//! Contains membership, gossip, reachability, heartbeat, and the
4//! split-brain resolver strategies.
5
6mod cluster_daemon;
7mod events;
8mod gossip;
9mod gossip_pdu;
10mod heartbeat;
11mod heartbeat_sender;
12mod leader;
13mod member;
14mod membership;
15mod multi_dc;
16mod reachability;
17mod remote_adapter;
18mod sbr;
19mod sbr_runtime;
20mod transport;
21mod vector_clock;
22
23pub use cluster_daemon::{
24    spawn_daemon, spawn_daemon_with_sbr, ClusterDaemonHandle, DaemonCmd, DaemonConfig, DaemonSnapshot,
25    GossipTransport, NoSbr,
26};
27pub use events::{ClusterEvent, ClusterEventBus, SubscriptionHandle};
28pub use gossip::{Gossip, GossipOverview};
29pub use gossip_pdu::{decide as gossip_decide, pick_gossip_target, GossipDecision, GossipPdu};
30pub use heartbeat::HeartbeatState;
31pub use heartbeat_sender::{HeartbeatSender, PeerHeartbeat};
32pub use leader::{elect_leader, is_converged, next_status, LeaderHandover, LeaderHandoverEvent};
33pub use member::{Member, MemberStatus};
34pub use membership::MembershipState;
35pub use multi_dc::{
36    heartbeat_interval_for, member_dc, partition_by_dc, same_dc, CrossDcSettings, DC_ROLE_PREFIX, DEFAULT_DC,
37};
38pub use reachability::{Reachability, ReachabilityStatus};
39pub use remote_adapter::ClusterRemoteAdapter;
40pub use sbr::{
41    DownAllStrategy, DowningDecision, DowningStrategy, KeepMajorityStrategy, KeepOldestStrategy, KeepReferee,
42    LeaseMajorityStrategy, SplitBrainResolver, StaticQuorumStrategy,
43};
44pub use sbr_runtime::{SbrAction, SbrRuntime};
45pub use transport::{
46    ClusterFrame, InProcessClusterTransport, InProcessRegistry, RecordingSink, RemoteMessageSink,
47    RemoteTellRecord, TcpClusterTransport,
48};
49pub use vector_clock::{VectorClock, VectorRelation};