# patroni/patroni

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/patroni-patroni).**

8,182 stars · 986 forks · Python · mit

## Links

- GitHub: https://github.com/patroni/patroni
- awesome-repositories: https://awesome-repositories.com/repository/patroni-patroni.md

## Topics

`consul` `etcd` `failover` `haproxy` `high-availability` `kubernetes` `postgresql` `raft` `zookeeper`

## Description

Patroni is a high availability manager and cluster orchestrator for PostgreSQL. It functions as an automatic failover controller and replication manager that ensures continuous database availability by automating leader election and promoting standby nodes during failures.

The system maintains a consistent cluster state by acting as a distributed consensus coordinator. It synchronizes configuration and manages leader elections through integration with distributed configuration stores such as etcd, ZooKeeper, or Consul.

Its broader capabilities include managing both synchronous and asynchronous replication modes to balance data durability with system latency. It also provides support for distributed database extensions and orchestration within container environments, utilizing native objects and labels to manage cluster state and route traffic.

## Tags

### Data & Databases

- [High Availability Configurations](https://awesome-repositories.com/f/data-databases/high-availability-configurations.md) — Provides the core tools and mechanisms for ensuring data redundancy and service continuity across distributed PostgreSQL clusters. ([source](https://cdn.jsdelivr.net/gh/patroni/patroni@master/README.md))
- [Automatic Failover Controllers](https://awesome-repositories.com/f/data-databases/automatic-failover-controllers.md) — Monitors database health and automatically promotes standby nodes to primary roles to minimize downtime.
- [Replication Control and Policy](https://awesome-repositories.com/f/data-databases/data-integration-synchronization/replication-control-policy.md) — Manages the configuration of synchronous and asynchronous replication modes to balance data durability and latency.
- [Database Replication](https://awesome-repositories.com/f/data-databases/database-replication.md) — Manages synchronous and asynchronous replication modes to balance data durability and system latency.
- [Distributed Configuration Store Integrations](https://awesome-repositories.com/f/data-databases/distributed-configuration-store-integrations.md) — Integrates with etcd to maintain consistent cluster state and coordinate leader elections across nodes. ([source](https://github.com/patroni/patroni/blob/master/docs/ENVIRONMENT.rst))
- [Distributed Consensus Stores](https://awesome-repositories.com/f/data-databases/distributed-consensus-stores.md) — Integrates with distributed consensus stores like etcd and ZooKeeper to maintain cluster state and leader election.
- [Database Managers](https://awesome-repositories.com/f/data-databases/postgresql-compatible-databases/database-managers.md) — Manages PostgreSQL database instances, including binary files, data directories, and user settings. ([source](https://github.com/patroni/patroni/blob/master/docs/ENVIRONMENT.rst))
- [Synchronous Replication Management](https://awesome-repositories.com/f/data-databases/data-replication/synchronous-replication-management.md) — Ensures data consistency by requiring a secondary node to confirm writes before returning success. ([source](https://github.com/patroni/patroni/blob/master/docs/replication_modes.rst))
- [Synchronous Commit Coordination](https://awesome-repositories.com/f/data-databases/data-synchronization/leaderless-replication/synchronous-commit-coordination.md) — Coordinates synchronous replication by requiring standby acknowledgments before confirming transaction success to clients.
- [Distributed Extensions](https://awesome-repositories.com/f/data-databases/postgresql-extensions/distributed-extensions.md) — Coordinates high availability for distributed database extensions that transform standard relational systems into clusters. ([source](https://patroni.readthedocs.io/))
- [Asynchronous Replication Management](https://awesome-repositories.com/f/data-databases/primary-replica-replication/asynchronous-replication-management.md) — Supports asynchronous replication to prioritize service availability during failover. ([source](https://github.com/patroni/patroni/blob/master/docs/replication_modes.rst))
- [Traffic Routing](https://awesome-repositories.com/f/data-databases/read-replicas/traffic-routing.md) — Assigns dynamic role labels to nodes to enable external orchestrators to route traffic to the current primary.
- [Replication Mode Configurators](https://awesome-repositories.com/f/data-databases/replication-mode-configurators.md) — Provides the ability to toggle between synchronous and asynchronous replication modes to balance durability and latency. ([source](https://github.com/patroni/patroni/blob/master/docs/dynamic_configuration.rst))
- [Strong Consistency Guarantees](https://awesome-repositories.com/f/data-databases/strong-consistency-guarantees.md) — Prevents data loss by ensuring only standbys with all confirmed transactions are promoted to primary. ([source](https://github.com/patroni/patroni/blob/master/docs/replication_modes.rst))

### DevOps & Infrastructure

- [Database Cluster Orchestration](https://awesome-repositories.com/f/devops-infrastructure/database-cluster-orchestration.md) — Provides automated deployment, scaling, and high-availability management for PostgreSQL clusters.
- [Cluster Configuration Management](https://awesome-repositories.com/f/devops-infrastructure/cluster-configuration-management.md) — Manages centralized cluster settings and high-availability configurations via distributed stores. ([source](https://patroni.readthedocs.io/))
- [Distributed Leader Election](https://awesome-repositories.com/f/devops-infrastructure/distributed-leader-election.md) — Implements heartbeat-based leader election to ensure a single primary node is active within the cluster.
- [Database High Availability](https://awesome-repositories.com/f/devops-infrastructure/high-availability-clustering/database-high-availability.md) — Automates leader election and failover to ensure continuous availability for PostgreSQL clusters.
- [High Availability Clusters](https://awesome-repositories.com/f/devops-infrastructure/high-availability-clusters.md) — Organizes database clusters across environments to ensure service continuity and fault tolerance.
- [Leader Election](https://awesome-repositories.com/f/devops-infrastructure/high-availability-systems/leader-election.md) — Implements distributed locking and leader election mechanisms to ensure single-writer exclusivity in high-availability setups. ([source](https://github.com/patroni/patroni/blob/master/docs/ENVIRONMENT.rst))
- [Automated Master Failovers](https://awesome-repositories.com/f/devops-infrastructure/remote-cluster-access/cluster-failover-managers/automated-master-failovers.md) — Automates the process of electing a new master and reconfiguring the cluster during a failure. ([source](https://github.com/patroni/patroni/blob/master/docs/dynamic_configuration.rst))
- [Cluster Orchestration APIs](https://awesome-repositories.com/f/devops-infrastructure/container-orchestration/container-orchestration-interfaces/api-driven-resource-orchestration/cluster-orchestration-apis.md) — Provides a REST API for external tools to monitor cluster health and trigger manual switchovers.
- [Distributed Database Clusters](https://awesome-repositories.com/f/devops-infrastructure/distributed-database-clusters.md) — Manages the operational deployment and coordination of distributed database clusters across multiple nodes.
- [Kubernetes Deployments](https://awesome-repositories.com/f/devops-infrastructure/kubernetes-deployments.md) — Provides tools and configurations for deploying high-availability database clusters to Kubernetes. ([source](https://patroni.readthedocs.io))
- [Kubernetes Deployment Management](https://awesome-repositories.com/f/devops-infrastructure/kubernetes-deployments/kubernetes-application-deployments/kubernetes-deployment-management.md) — Provides automated management of containerized database deployments on Kubernetes using specialized labels and environment variables. ([source](https://github.com/patroni/patroni/blob/master/docs/citus.rst))
- [Native Orchestration State Stores](https://awesome-repositories.com/f/devops-infrastructure/managed-cluster-orchestration/native-orchestration-state-stores.md) — Stores configuration and leader keys directly within Kubernetes objects to remove the need for external configuration stores. ([source](https://github.com/patroni/patroni/blob/master/docs/kubernetes.rst))
- [Quorum-Based Commit Coordination](https://awesome-repositories.com/f/devops-infrastructure/remote-cluster-access/cluster-failover-managers/automated-master-failovers/quorum-based-commit-coordination.md) — Implements quorum-based commits to balance write latency with data safety across synchronous standbys. ([source](https://github.com/patroni/patroni/blob/master/docs/replication_modes.rst))

### Networking & Communication

- [Cluster State Coordinators](https://awesome-repositories.com/f/networking-communication/distributed-systems-p2p/distributed-computing/consensus-coordination-systems/cluster-state-coordinators.md) — Maintains a consistent view of cluster topology and metadata by integrating with distributed configuration stores.
- [Label-Based](https://awesome-repositories.com/f/networking-communication/traffic-routing/label-based.md) — Assigns customizable role labels to pods so orchestration services can route traffic to the current leader. ([source](https://github.com/patroni/patroni/blob/master/docs/kubernetes.rst))

### Operating Systems & Systems Programming

- [Database Sidecar Processes](https://awesome-repositories.com/f/operating-systems-systems-programming/kernel-core-internals/process-and-memory-management/memory-management/process-lifecycle-orchestrators/process-lifecycle-managers/database-sidecar-processes.md) — Runs as a sidecar process wrapper around PostgreSQL to monitor health and manage instance lifecycles.

### Software Engineering & Architecture

- [Failover State Machines](https://awesome-repositories.com/f/software-engineering-architecture/state-machine-logic/replicated-state-machines/failover-state-machines.md) — Utilizes state-machine logic to promote standbys to primary based on data durability thresholds during failures.

### System Administration & Monitoring

- [Cluster Health Monitoring](https://awesome-repositories.com/f/system-administration-monitoring/cluster-health-monitoring.md) — Exposes a REST API for querying the health status and operational metrics of the distributed cluster. ([source](https://github.com/patroni/patroni/blob/master/docs/ENVIRONMENT.rst))
