github.com/iqoqo/nomad@v0.11.3-0.20200911112621-d7021c74d101/website/pages/docs/internals/gossip.mdx (about) 1 --- 2 layout: docs 3 page_title: Gossip Protocol 4 sidebar_title: Gossip Protocol 5 description: |- 6 Nomad uses a gossip protocol to manage membership. All of this is provided 7 through the use of the Serf library. 8 --- 9 10 # Gossip Protocol 11 12 Nomad uses a [gossip protocol](https://en.wikipedia.org/wiki/Gossip_protocol) 13 to manage membership. This is provided through the use of the [Serf library](https://www.serf.io/). 14 The gossip protocol used by Serf is based on 15 ["SWIM: Scalable Weakly-consistent Infection-style Process Group Membership Protocol"](https://www.cs.cornell.edu/projects/Quicksilver/public_pdfs/SWIM.pdf), 16 with a few minor adaptations. There are more details about [Serf's protocol here](https://www.serf.io/docs/internals/gossip.html). 17 18 ~> **Advanced Topic!** This page covers technical details of 19 the internals of Nomad. You do not need to know these details to effectively 20 operate and use Nomad. These details are documented here for those who wish 21 to learn about them without having to go spelunking through the source code. 22 23 ## Gossip in Nomad 24 25 Nomad makes use of a single global WAN gossip pool that all servers participate in. 26 Membership information provided by the gossip pool allows servers to perform cross region 27 requests. The integrated failure detection allows Nomad to gracefully handle an entire region 28 losing connectivity, or just a single server in a remote region. The gossip protocol 29 is also used to detect servers in the same region to perform automatic clustering 30 via the [consensus protocol](/docs/internals/consensus). 31 32 All of these features are provided by leveraging [Serf](https://www.serf.io/). It 33 is used as an embedded library to provide these features. From a user perspective, 34 this is not important, since the abstraction should be masked by Nomad. It can be useful 35 however as a developer to understand how this library is leveraged.