ZooKeeper: Because Coordinating Distributed Systems is a Zoo
This document is a guide for developers wishing to create distributed applications that take advantage of ZooKeeper's coordination services. It contains conceptual and practical information. The first four sections of this guide present a higher level discussions of various ZooKeeper concepts. These are necessary both for an understanding of how ZooKeeper works as well how to work with it.
https://zookeeper.apache.org/doc/r3.6.0/zookeeperProgrammers.html