Membership
Membership: SWIM-style cluster membership with a CRDT member view (P1 L3).
Each node is tracked as { status, incarnation }. A node refutes a false suspicion/death by incrementing its own incarnation and re-announcing Alive, so the merge rule is: higher incarnation wins; at the same incarnation the more-severe status wins (Dead > Suspect > Alive). That order makes merge a lexicographic max over (incarnation, severity) — associative, commutative, and idempotent — so gossiped member views converge regardless of order (the anti-entropy CRDT join for the small member set; no Merkle needed).
This is the pure membership state + merge + transitions; the SWIM probe loop (direct/indirect ping, suspicion timers) drives it from the runtime layer.