Nomad
Gossip Protocol
Nomad uses the Serf library to provide a gossip protocol to manage membership. The gossip protocol used by Serf is based on "SWIM: Scalable Weakly-consistent Infection-style Process Group Membership Protocol", with a few minor adaptations. There are more details about Serf's protocol here.
Advanced Topic! This page covers technical details of the internals of Nomad. You do not need to know these details to effectively operate and use Nomad. These details are documented here for those who wish to learn about them without having to go spelunking through the source code.
Gossip in Nomad
Nomad makes use of a single global WAN gossip pool that all servers participate in. Membership information provided by the gossip pool allows servers to perform cross region requests. The integrated failure detection allows Nomad to gracefully handle an entire region losing connectivity, or just a single server in a remote region. Nomad also uses the gossip protocol to detect servers in the same region to perform automatic clustering via the consensus protocol.
To provide all these features, Nomad uses Serf as an embedded library. From a user perspective, this is not important, since Nomad masks the abstraction. However, developers may find it useful to understand how Nomad leverages the Serf library.