Coordination in Distributed Systems
http://sns.cs.princeton.edu/2009/03/coordination-in-distributed-systems/Architecting distributed systems can be very difficult. Arguably the hardest part of programming a distributed application is getting node coordination correct. I’ll define a node in this context as a service running on a single server which communicates with other nodes and together make up your distributed application.