datum-cluster
datum-cluster is the Datum membership satellite. The v0.10 C1-C3 surface is
membership plus the advertised DCP agent endpoint used by cluster-aware agents:
node identity, roles, SWIM gossip, member state transitions, unreachable
detection, downing, Datum-native state/event feeds, the optional agent DCP
address carried in each Member, and the deterministic placement-coordinator
helper.
The placement coordinator is the locally computed oldest Up member. C1 does
not have Akka up numbers, so v0.10 orders by propagated member incarnation and
then node id. There are no election messages and no consensus protocol. Every
node with the same C1 view computes the same coordinator; during a partition
with timeout downing, two sides can transiently compute different coordinators.
Quorum or lease fencing remains a v0.11+ follow-up.
The DCP node-session manager and placement actor live in
datum-agent::ClusterAgent, where registry reads, coordinator forwarding, and
coordinator-issued starts run over C2 sessions. Cluster sharding builds on this
surface in the datum-cluster-sharding crate (shipped in v0.10).