Great post. SWIM is one of my favorite kind of distributed systems protocol, the kind where the acronym name makes you think it might be horribly complicated, but it turns out you can explain it in a paragraph or two (the post does a good job).<p>A popular implementation of SWIM you can use with just about any system (if you can handle another runtime dep) is HashiCorp's Serf. Serf does some interesting stuff on top of SWIM; it does full-node sync with TCP to speed up convergence, for instance, and, most notably, implements a network telemetry system on top of it to estimate all-points RTTs for everyone in the cluster.