Summary
In this chapter, you saw how to implement high-level constructs of distributed systems using the ZooKeeper data model and primitives provided to it by its APIs. You learned the algorithms to develop important distributed data structures such as barrier, lock, and queue with ZooKeeper. We also studied the algorithms and looked at the pseudocode to implement some of the common tasks required in the development of distributed applications, namely leader election, group membership, and the 2PC protocol. You saw how we can solve these problems in a simple and lucid manner with ZooKeeper. While implementing the recipes, you also learned how to avoid some of the problems such as the herd effect and race conditions.
Developers should be careful when looking at these issues while developing their applications with ZooKeeper, as otherwise, the scalability of ZooKeeper gets negatively impacted, and it also leads to bursts of traffic in the network, thus causing service downgrade.
In the next...