zookeeper is a free, open source databases project written in Java and released under Apache-2.0. It has 12,806 GitHub stars, 7,319 forks and 242 open issues, and was last pushed 11 hours ago. On this registry it ranks #65 of 143 tracked projects in Databases, with 5 head-to-head comparisons available.

What is zookeeper?

Apache ZooKeeper is an Apache-2.0 licensed Java coordination service, published from the apache/zookeeper repository, used by distributed systems to hold shared configuration, naming and synchronisation state.

What it is

Apache ZooKeeper is a Java project from the Apache Software Foundation, distributed under the Apache License 2.0. It lives in the Infrastructure & Operations / Databases category of this registry, ships as the Maven artifact org.apache.zookeeper:zookeeper alongside the zookeeper-server and zookeeper-jute modules, and carries 12,806 stars and 7,319 forks on GitHub. Its declared topics — consensus, coordination, distributed-configuration, configuration-management, service-discovery, key-value, distributed-database and distributed-systems — describe the ground it occupies. The project is documented through its website at https://zookeeper.apache.org, its wiki, and a docs folder inside the repository.

The concrete thing it replaces is ad-hoc, per-application coordination code: hand-rolled leader election, bespoke config polling, home-grown service registries. Instead of each service embedding its own mutable state and discovery logic, ZooKeeper provides one key-value coordination layer that multiple distributed processes can share. Operators download a release from https://zookeeper.apache.org/releases.html rather than writing that plumbing themselves.

Key capabilities

  • Distributed coordination and consensus primitives exposed as a shared service, per the project's own topic list.
  • A key-value and distributed-database style data surface for holding shared state.
  • Distributed configuration and configuration-management, so applications read coordinated settings instead of local files.
  • Service discovery, letting clients locate peers through the same coordination layer.
  • Release artifacts published in two forms: apache-zookeeper-[version].tar.gz with all source, and apache-zookeeper-[version]-bin.tar.gz with all jar files required to run ZooKeeper.
  • Maven deployment of the parent, zookeeper and zookeeper-jute artifacts to the central repository at https://repo1.maven.org/maven2/org/apache/zookeeper/zookeeper, done after each release is voted on and approved by the Apache ZooKeeper PMC.
  • Aggregated API documentation generated with mvn javadoc:aggregate, written to target/site/apidocs.
  • Continuous integration through GitHub Actions workflows, with a legacy Travis CI badge retained in the README.

Who uses it and how

  • Teams running distributed systems that need shared coordination state rather than per-node local state.
  • Platform and infrastructure groups that centralise configuration management so many services read one coordinated source.
  • Environments where service discovery is handled inside the application stack instead of through a separate registry product.
  • Java shops that consume ZooKeeper as a Maven dependency, pulling org.apache.zookeeper:zookeeper from the central repository rather than vendoring jars.
  • Operators who need a server runtime and prefer the packaged -bin.tar.gz artifact over building from source.

Getting started

Download a release from https://zookeeper.apache.org/releases.html and use the apache-zookeeper-[version]-bin.tar.gz artifact, which contains all jar files required to run ZooKeeper. To build from source, extract the source tarball and run mvn clean install.

How it compares

No comparable or competing product is named in the supplied facts, so this entry stands alone in this registry rather than being contrasted with alternatives. Readers looking for a head-to-head comparison will not find one here.

When to use it — and when not to

A self-hoster takes on the whole Java service: obtaining a release, or building it with Maven from source, and keeping a coordinated deployment of that service alive. Teams that want a managed, zero-operations coordination layer, or that only need a plain cache or message queue, should not pick ZooKeeper for that job. The README is thin on operational detail — it covers packaging, artifact names and contribution workflow but says little about running a cluster — and the repository carries 242 open issues, so expect to lean on the website, the wiki and the docs folder for real deployment guidance.

project readme (upstream, from github) — read inline

Apache ZooKeeper GitHub Actions CI Travis CI Maven Central License

https://zookeeper.apache.org/

For the latest information about Apache ZooKeeper, please visit our website at:

https://zookeeper.apache.org

and our wiki, at:

https://cwiki.apache.org/confluence/display/ZOOKEEPER

Packaging/release artifacts

Either downloaded from https://zookeeper.apache.org/releases.html or found in zookeeper-assembly/target directory after building the project with maven.

apache-zookeeper-[version].tar.gz

    Contains all the source files which can be built by running:
    mvn clean install

    To generate an aggregated apidocs for zookeeper-server and zookeeper-jute:
    mvn javadoc:aggregate
    (generated files will be at target/site/apidocs)

apache-zookeeper-[version]-bin.tar.gz

    Contains all the jar files required to run ZooKeeper
    Full documentation can also be found in the docs folder

As of version 3.5.5, the parent, zookeeper and zookeeper-jute artifacts are deployed to the central repository after the release is voted on and approved by the Apache ZooKeeper PMC:

https://repo1.maven.org/maven2/org/apache/zookeeper/zookeeper

Contributing

We always welcome new contributors to the project! See How to Contribute for details on how to submit patches as pull requests and other aspects of our contribution workflow.

Frequently asked questions

Is zookeeper free to use?

zookeeper is open source under the Apache-2.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does zookeeper do?

Apache ZooKeeper

What is zookeeper written in?

zookeeper is primarily written in Java. Its source is publicly available at https://github.com/apache/zookeeper, and it has 12,806 GitHub stars.