Apache ZooKeeper

Apache ZooKeeper is an open-source coordination service for distributed applications. It originated at Yahoo and later became an Apache project. Its own project site describes it as a centralized service for maintaining configuration information, naming, providing distributed synchronization, and providing group services.

ZooKeeper presents clients with a small, replicated hierarchical namespace that resembles a file system: nodes called znodes hold data and can be arranged in a tree. The service runs as an ensemble of servers that keep this namespace consistent and highly available, so that an application can rely on it even when individual servers fail.

Rather than shipping high-level features like locks directly, ZooKeeper provides a few strong primitives, such as ordered and ephemeral znodes plus watches, and its documented recipes show how to build coordination patterns on top of them. The recipes page covers fully distributed locks (where no two clients believe they hold the same lock at once), leader election using sequential ephemeral nodes, barriers, queues, and two-phase commit.

ZooKeeper’s design was influenced by Google’s Chubby lock service, and it became a widely used building block for the distributed-systems ecosystem, providing coordination for projects such as Apache Kafka, Hadoop, and HBase.