// ZooKeeper to Raft migration
Retire ZooKeeper where you can. Patch it where you cannot.
A product-by-product move to Raft-based coordination.
Raft is a consensus algorithm designed to be easy to understand, and equivalent to Paxos in fault tolerance and performance. It now sits under most of ZooKeeper's replacements: KRaft in Kafka, ClickHouse Keeper, etcd, Consul and Apache Ratis. ZooKeeper itself uses its own protocol, ZAB. Some products can leave ZooKeeper today and some cannot. OSSeva migrates the ones that can, and ships patched ZooKeeper 3.4 to 3.7 builds for the ones that cannot.
Trusted globally by enterprises




Where each product stands on ZooKeeper
There is no single ZooKeeper alternative. Each product decides for itself, and they are at different points.
Ready to move: Kafka, ClickHouse, Patroni
Kafka 4.0 removed ZooKeeper mode entirely, so ZooKeeper clusters must migrate to KRaft before upgrading. ClickHouse recommends ClickHouse Keeper, which speaks the ZooKeeper protocol on top of Raft. Patroni supports etcd, Consul and Kubernetes as well as ZooKeeper.
Moving: Pulsar
Pulsar has offered Oxia as a metadata store since 3.3.0. The 5.0.0-M1 preview makes Oxia the recommended store and adds live ZooKeeper to Oxia migration (PIP-454), while ZooKeeper remains fully supported.
Not yet: Solr, HBase, Hadoop
Solr 10 still requires ZooKeeper, now through Apache Curator. HBase 3.0 still needs it on the server side, and the work to remove it from client connections is open against HBase 4.0. HDFS and YARN high availability in Hadoop 3.5 still elect leaders through ZooKeeper. These stay on a patched ensemble.
The dates that matter
2014
The Raft paper, In Search of an Understandable Consensus Algorithm, wins Best Paper at USENIX ATC.
2021-12
ClickHouse 21.12 declares clickhouse-keeper feature complete.
2023-01-30
Patroni 3.0.0 deprecates its built-in Raft option in favour of an external DCS.
2025-03-18
Kafka 4.0 removes ZooKeeper mode. KRaft only.
2026-02-21
Kafka 3.9.2, the final release of the last ZooKeeper-capable line.
2026-03-03
Solr 10.0.0 released. It still requires ZooKeeper.
2026-06-23
Pulsar 5.0.0-M1 preview recommends Oxia and adds live migration from ZooKeeper.
2026-08-05
HBase 3.0.0 released. The server side still requires ZooKeeper.
What OSSeva delivers
Raft migrations, product by product
Kafka ZooKeeper mode to KRaft before the 4.x upgrade, ClickHouse to ClickHouse Keeper with clickhouse-keeper-converter, Patroni to etcd v3, and Pulsar to Oxia on 5.0. Each one rehearsed, with a tested rollback.
Patched ZooKeeper for what stays
Patched builds of ZooKeeper 3.4, 3.5, 3.6 and 3.7, support for 3.8 and 3.9, and third-party CVE attestation, including VEX, for the Solr, HBase and Hadoop clusters that cannot leave ZooKeeper yet.
A map of every ensemble
We find every ZooKeeper in your estate, bundled or standalone, and every product that talks to it, so you know which ensembles can be retired and which have to stay. 24/7 operations for the ensembles and their replacements are available.
Your options, compared
| Option | What you get | Trade-off |
|---|---|---|
| Migrate everything at once | A ZooKeeper-free estate on paper | Not possible today. Solr, HBase and Hadoop still require ZooKeeper. |
| Migrate product by product | Fewer ensembles as each product moves | Shared ensembles stay until their last client leaves, so they still need patching. |
| Keep ZooKeeper, upgrade to 3.9 | A community-supported line | Each product's bundled client and Curator version has to be compatible first. |
| OSSeva migration and support | Raft migrations where possible and patched ZooKeeper where not | A subscription covering both for as long as ZooKeeper remains. |
Raft description from raft.github.io. Kafka dates from the Kafka 4.0 announcement, upgrade notes and downloads page. ClickHouse Keeper facts from the ClickHouse documentation and 2021 changelog. Pulsar facts from the 3.3.0 and 5.0.0-M1 release notes. Solr, HBase and Hadoop facts from each project's news, downloads and documentation pages. Patroni facts from the Patroni release notes.
Frequently asked questions
What is the Raft consensus algorithm?
Raft is a consensus algorithm for keeping a replicated log consistent across servers. It splits the problem into leader election, log replication and safety, and it was designed to be easier to understand than Paxos while matching it in fault tolerance and performance. Diego Ongaro and John Ousterhout published it in 2014.
ZooKeeper vs etcd: what is the difference?
Both are replicated, strongly consistent coordination stores. ZooKeeper is a Java service that uses its own ZAB protocol and a hierarchical znode tree. etcd is a Go service that uses Raft and a flat key-value space with a gRPC API. Neither is a drop-in replacement for the other, so the choice depends on what the product above supports.
Is there a ZooKeeper alternative for every product?
No. Kafka has KRaft, ClickHouse has Keeper, Patroni supports etcd and Consul, and Pulsar is moving to Oxia. Solr 10, HBase 3.0 and Hadoop 3.5 still require ZooKeeper, so those clusters stay on a patched ensemble.
Does Kafka 3.9 need to move to KRaft?
Before it can go to Kafka 4.0, yes. Kafka 4.0 removed ZooKeeper mode, and ZooKeeper-mode clusters must migrate to KRaft first. Kafka 3.9.2, released in February 2026, is the final release of the last ZooKeeper-capable line.
What happens to a shared ZooKeeper ensemble?
It stays until its last client moves. If Kafka and HBase share an ensemble, moving Kafka to KRaft does not retire it. OSSeva patches the ensemble for as long as any product still depends on it.
Move what can move. Patch what has to stay.
Book a discovery call and we will map every ZooKeeper in your estate and what depends on it.