Apache ZooKeeper
Apache ZooKeeper is an open-source distributed coordination service for maintaining configuration, naming, synchronization, and group membership in distributed systems.
Last updated August 28, 2026
Overview
Apache ZooKeeper is an open-source infrastructure project that provides a centralized service for coordinating distributed applications. It was originally developed at Yahoo as a way to address recurring coordination problems in large-scale distributed systems, including configuration management, service discovery, leader election, synchronization, and group membership. The project was later contributed to the Apache Software Foundation, where it became part of the Apache ecosystem and developed into a widely used foundation component for distributed data platforms and other clustered services. ZooKeeper exposes a hierarchical namespace resembling a simplified filesystem. Applications store small coordination records, known as znodes, in this namespace and can read, update, create, delete, and watch them. Watches allow clients to receive notifications when relevant data or child nodes change. This model supports common distributed-systems patterns such as electing a leader among competing processes, registering ephemeral service instances, maintaining shared configuration, and implementing distributed locks. ZooKeeper is designed for coordination metadata rather than general-purpose application data; its strength is consistent, highly available management of small pieces of state across a cluster. The service uses a replicated ensemble architecture. A quorum of servers maintains the authoritative state, while clients connect to available servers in the ensemble. ZooKeeper's consistency model is based on ordered updates and quorum replication, enabling clients to observe a coherent view of coordination state while allowing the service to continue operating through certain server failures. Its protocol and APIs have traditionally been used through Java and C bindings, with additional client libraries and integrations available from the broader open-source community. ZooKeeper became especially important in the Hadoop and big-data ecosystem. Apache projects and commercial platforms used it to coordinate brokers, controllers, workers, storage services, and other clustered components. Apache Kafka historically used ZooKeeper for broker metadata and controller coordination, although Kafka's newer KRaft architecture is intended to remove that dependency. Other distributed platforms and enterprise systems have also integrated ZooKeeper for cluster membership, failover, metadata coordination, or configuration distribution. The Apache ZooKeeper brand refers primarily to a software project and community rather than a conventional commercial product company. The software is released under an Apache open-source license, and development, releases, documentation, issue tracking, and governance are conducted through Apache project processes. There is no separately listed corporation, standalone revenue stream, or proprietary subscription offering associated with the project. Its present role is that of an active, mature coordination component used directly or indirectly in distributed infrastructure, although some newer systems have adopted alternative coordination designs or moved away from ZooKeeper to reduce operational dependencies.
History
Apache ZooKeeper originated at Yahoo in 2007. Its design grew out of the practical need to provide a reusable coordination service for large distributed applications. Before a common coordination layer existed, individual systems often implemented their own mechanisms for configuration propagation, naming, leader election, locking, and failure detection. Those bespoke mechanisms were difficult to maintain and could behave inconsistently under partial failures. ZooKeeper sought to centralize the coordination problem in a small, replicated service with a simple programming model. The project's central abstraction is a hierarchical namespace containing small records called znodes. Persistent znodes remain until explicitly removed, while ephemeral znodes are associated with a client session and disappear when that session ends. Sequential znodes can receive monotonically ordered suffixes. Together with one-time watches, these primitives can be combined into higher-level patterns such as service registration, leader election, distributed locks, barriers, configuration publication, and membership tracking. ZooKeeper is not intended to be a general database: applications normally store coordination metadata and use the service to establish ordering and shared state among other components. ZooKeeper was contributed to the Apache Software Foundation and became an Apache project. It subsequently graduated to Top-Level Project status, establishing a community-led governance structure, Apache licensing, and release practices independent of its original corporate sponsor. The project became closely associated with the Hadoop ecosystem and with other distributed data systems that needed dependable cluster coordination. Its adoption was helped by a relatively focused scope, client-session semantics, quorum replication, and integrations across the Java-centered big-data stack. Operationally, ZooKeeper is deployed as an ensemble of servers. Clients connect to the ensemble and can switch between servers when connections fail. The ensemble uses quorum-based replication and ordered transactions so that surviving members can preserve a consistent coordination state when failures remain within the system's fault-tolerance assumptions. Administrators must still manage ensemble sizing, disk performance, network behavior, session timeouts, access control, upgrades, and the distinction between coordination data and application data. ZooKeeper has remained an important infrastructure component, but its role has evolved. Several newer distributed systems have built coordination into their own metadata layers or selected alternative consensus-based designs. Apache Kafka, for example, historically used ZooKeeper but introduced KRaft to manage Kafka metadata without a separate ZooKeeper cluster. Such changes reduce ZooKeeper's footprint in particular ecosystems but do not eliminate its general usefulness. The project remains an active Apache open-source offering for systems that need an established external coordination service.
- 2020ZooKeeper 3.6.0 release
The 3.6.x generation introduces further platform, administration, and operational improvements as the project continues its mature release cycle.
- 2011ZooKeeper 3.3.0 release
The 3.3.x generation becomes an important mature release line for deployments using ZooKeeper in distributed infrastructure.
- 2010Graduation as an Apache Top-Level Project
ZooKeeper graduates to Apache Top-Level Project status and operates with independent project governance within the Apache Software Foundation.
- 2008Project contributed to the Apache Software Foundation
ZooKeeper enters the Apache community, where its code, releases, and governance develop under the foundation's open-source project processes.
- 2007ZooKeeper is created at Yahoo
Yahoo develops ZooKeeper to provide a reusable coordination service for distributed applications and large-scale infrastructure.
Products and positioning
An open-source, vendor-neutral coordination layer for distributed systems, emphasizing consistent metadata management, quorum-based availability, watches, and mature integration with big-data and clustered infrastructure.
Apache ZooKeeper ServerDistributed coordination service2007
The core server software runs as an ensemble and maintains replicated coordination state. It provides ordered updates, client sessions, watches, access controls, and a hierarchical namespace for configuration, naming, membership, and synchronization use cases.
ZooKeeper Client APIsSoftware development interfaces2007
Client interfaces allow applications to connect to an ensemble and manipulate znodes, establish watches, manage sessions, and implement higher-level coordination patterns. The project has traditionally included Java and C client support, while other language clients are maintained by the wider ecosystem.
ZooKeeper Admin and Monitoring ToolsInfrastructure operations2007
The project includes administrative commands, configuration facilities, four-letter operational commands, metrics and monitoring integration points, and documentation for operating ensembles. These tools support health checks, troubleshooting, reconfiguration, and routine cluster administration.
Flagship businesses
- Apache ZooKeeper Server
- ZooKeeper client APIs
- ZooKeeper ensemble-based coordination service
Brand decisions
- 2010Transition to independent Apache Top-Level Project governanceStrategy
After its development at Yahoo and contribution to Apache, ZooKeeper needed a durable community governance model for continued open-source development.
What changed. The project graduated to Top-Level Project status under the Apache Software Foundation, with project decisions and releases managed through Apache community processes.
Aftermath. ZooKeeper became a foundation-managed, vendor-neutral project and expanded its role in the Apache distributed-systems ecosystem.
- Kafka's move toward KRaft reduces reliance on ZooKeeperGeneration change
Apache Kafka historically used ZooKeeper for cluster metadata and controller coordination, but operating two distributed systems added deployment and administration overhead.
What changed. Kafka introduced KRaft, an architecture that uses Kafka's own quorum-based metadata management instead of a separate ZooKeeper dependency.
Aftermath. Newer Kafka deployments can avoid ZooKeeper, while ZooKeeper continues as a general-purpose coordination service and remains relevant to other systems.
Recent events
- 2010Apache ZooKeeper project graduates as an Apache Top-Level Project
The project completed its transition into an Apache Top-Level Project, giving it independent governance within the Apache Software Foundation.
Other - Apache ZooKeeper continues releases as a mature coordination platform
The project continues to publish releases, documentation, security information, and community updates through the Apache infrastructure.
Other - Apache Kafka develops KRaft as an alternative to ZooKeeper dependency
Apache Kafka's KRaft architecture replaces Kafka's historical dependence on ZooKeeper for metadata and controller coordination. This is an architectural change in a major integration partner rather than a discontinuation of the ZooKeeper project.
Other
Sources
Cite this profile: Cite the canonical profile. /brand-wiki/apache-zookeeper · Editorial policy · How profiles are compiled