// Patroni support
Your PostgreSQL failover depends on a store nobody patches.
Patroni is only as available as its DCS.
Patroni keeps the leader key and cluster state for PostgreSQL in a distributed configuration store: ZooKeeper, etcd, Consul or Kubernetes. The built-in Raft option has been deprecated since Patroni 3.0. The DCS is often older than the database it protects. ZooKeeper 3.4 to 3.7 are end of life, etcd 3.4 ended in June 2026, and Consul moved to the BSL from 1.17. OSSeva patches the DCS under Patroni, supports the PostgreSQL HA stack above it, and moves the DCS when you decide to.
Trusted globally by enterprises




Why the DCS under Patroni gets left behind
Teams upgrade PostgreSQL on a schedule. The DCS rarely has one.
Every DCS option has its own end-of-life clock
ZooKeeper 3.7 reached end of life in February 2024 and 3.4 in June 2020. etcd 3.4 received its final patch on 1 June 2026. Consul 1.17 and later are under the Business Source License, and 1.16.3 was the last MPL release line.
The etcd v2 protocol is gone in 3.6
Patroni's etcd section uses the v2 protocol and its etcd3 section uses v3. etcd 3.6 removed the --enable-v2 flag, and Patroni's documentation warns that v2 and v3 keys are not visible to each other, so the switch is a planned cluster operation, not a config edit.
Built-in Raft is deprecated
Patroni 3.0.0 deprecated its built-in Raft (pysyncobj) option in January 2023. It is still documented but not recommended, so clusters using it need an external DCS.
The dates that matter
2020-06-01
ZooKeeper 3.4 reaches end of life.
2023-01-30
Patroni 3.0.0 deprecates the built-in Raft DCS.
2023-08-10
HashiCorp announces the move to the Business Source License. Consul 1.17.0 is the first BSL line.
2024-02-02
ZooKeeper 3.7 reaches end of life.
2025-05-15
etcd 3.6.0 removes the --enable-v2 flag.
2026-06-01
etcd 3.4.45, the final 3.4 patch. etcd 3.4 reaches end of life.
2026-08-12
Patroni 4.1.5 released.
What OSSeva delivers
Patched DCS builds
Patched builds of the store under Patroni: ZooKeeper 3.4, 3.5, 3.6 and 3.7, etcd 3.4 and older, and the MPL-licensed Consul releases up to 1.16.3. Same API and data format, so Patroni sees no change.
DCS migration
A rehearsed move from ZooKeeper, Consul or etcd v2 to etcd v3 or the Kubernetes DCS, including failover tests before and after the switch, with PostgreSQL staying online.
PostgreSQL HA operations
24/7 monitoring of Patroni, replication lag and DCS quorum, a 15-minute P1 response and named engineers, alongside PostgreSQL extended support for end-of-life versions.
Your options, compared
| Option | What you get | Trade-off |
|---|---|---|
| Upgrade the DCS in place | A community-supported ZooKeeper, etcd or Consul | Rolling upgrades one step at a time, and a licence review for Consul 1.17 and later. |
| Move to the Kubernetes DCS | No separate coordination cluster | Only where PostgreSQL already runs on Kubernetes. |
| OSSeva support | A patched DCS, DCS migration and PostgreSQL HA operations | A subscription per cluster. |
| Leave it | Nothing | The component that decides which node is primary stays unpatched. |
DCS options and the Raft deprecation from the Patroni configuration documentation and release notes. etcd dates from the etcd blog. Consul licence facts from HashiCorp's announcement and the LICENSE file at each Consul tag. ZooKeeper dates from zookeeper.apache.org.
Frequently asked questions
Which DCS does Patroni support?
Consul, etcd (v2 protocol), etcd3 (v3 protocol), ZooKeeper, Exhibitor and Kubernetes. The built-in Raft option is still documented but has been deprecated since Patroni 3.0.0.
Should Patroni use ZooKeeper or etcd?
Both work. etcd is the natural target when a ZooKeeper ensemble exists only for Patroni. Where the ensemble also serves Kafka, Solr or Hadoop, keeping it and patching it is often simpler.
Can we upgrade etcd to 3.6 under Patroni?
Only once Patroni uses the etcd3 section. etcd 3.6 removed the --enable-v2 flag, and Patroni's v2 and v3 keys are not visible to each other, so the move needs planning.
Do you support the PostgreSQL under Patroni too?
Yes. OSSeva provides extended support for end-of-life PostgreSQL versions alongside the DCS and Patroni layers.
Patch the store that decides which node is primary.
Talk to an engineer about your Patroni clusters and the DCS under them.