1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
//! SWIM — Scalable Weakly-consistent Infection-style Membership.
//!
//! This module implements the foundation of NodeDB's cluster membership and
//! failure-detection subsystem, modelled after Das, Gupta & Motivala's SWIM
//! paper (DSN 2002) with the Lifeguard refinements (suspicion multiplier,
//! incarnation refutation, dedicated acks) used by modern systems such as
//! Hashicorp memberlist and Cassandra's gossiper.
//!
//! ## Layer map (Phase E)
//!
//! | Sub-batch | Contents |
//! |-----------|------------------------------------------------------------|
//! | **E-α** | Core types — `config`, `error`, `incarnation`, `member`, `membership` (this file's children) |
//! | E-β | Wire messages (`Ping`/`PingReq`/`Ack`/`Nack`) + zerompk codec |
//! | E-γ | Failure detector loop over an injected transport trait |
//! | E-δ | Piggyback dissemination queue + convergence tests |
//! | E-ε | Real UDP transport, bootstrap seeding, cluster integration |
//!
//! E-α is deliberately side-effect-free: no tasks, no I/O, no wire formats.
//! It exposes the pure data model — member states, incarnation numbers, and
//! the state-merge rule — that every later sub-batch builds on.
pub use ;
pub use SwimConfig;
pub use ;
pub use ;
pub use SwimError;
pub use Incarnation;
pub use ;
pub use ;
pub use ;