Coordination in Distributed Systems (ZooKeeper)
Tags: coordination, distributed systems, Reliability, Scalability, zookeeper
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.
What I mean by coordination here is some act that multiple nodes must perform together. Some examples of coordination:
- Group membership
- Locking
- Publisher/Subscriber
- Ownership
- Synchronization
One or more of these primitives show up in all distributed systems, so implementing them correctly is extremely important. While developing CRAQ, I originally implemented a very simple group membership service, but … Continue Reading