title: What are the best papers for learning about algorithms for communicating updates in a distributed system?
body: <p>I have a distributed system in mind (multiple nodes in a single datacenter) that I want to have the following properties:</p>
  
  <ul>
  <li>nodes can enter and leave the system at any time.
  <ul>
  <li>There is no data replication between nodes. </li>
  <li>Which node the client makes use of is up to the client (i.e. it could be consistent hashing, it could be something else)</li>
  </ul></li>
  <li>no master (i.e. no central point of failure) </li>
  <li>each node <em>may</em> receive a piece of information that needs to be forwarded to the rest of the nodes</li>
  </ul>
  
  <p>What algorithms (links to papers are best) are suitable for this? </p>
  
  <p>(I assume some of the answers will include P2P algorithms, but most of them that I've encountered in the past have acted more like distributed hash tables, where nodes enter and take over some part of the keyspace, etc. I also recognize that multicast with simple UDP messages might be appropriate here, but what existing work would help make the messaging reliable?)</p>