When building a system on top of a set of wildly uncooperative and unruly computers you have knowledge problems: knowing when other nodes are dead; knowing when nodes become alive; getting information about other nodes so you can make local decisions, like knowing which node should handle a request based on a scheme for assigning nodes to a certain range of users; learning about new configuration
![Using Gossip Protocols for Failure Detection, Monitoring, Messaging and Other Good Things - High Scalability -](https://cdn-ak-scissors.b.st-hatena.com/image/square/d6cc9dc6e05555d46fcfe104587b014867609ae0/height=288;version=1;width=512/https%3A%2F%2Fhighscalability.com%2Fcontent%2Fimages%2F2024%2F02%2F5634993443_e0140fc8f4_m-1.jpg)