A PostgreSQL extension and service for automated failover and high-availability, optimized for simplicity and correctness.
pg_auto_failover is a PostgreSQL extension and service designed to provide automated failover and high-availability for Postgres clusters. It monitors node health and manages safe transitions between primary and secondary nodes to prevent downtime and data loss. The solution supports various architectures, including multi-standby setups and Citus clusters, making it versatile for production environments.
Database administrators and DevOps engineers managing PostgreSQL deployments who need reliable, automated failover solutions to ensure service continuity. It's also suitable for teams using Citus who require high-availability for distributed database clusters.
Developers choose pg_auto_failover for its emphasis on simplicity and correctness, leveraging PostgreSQL's native features rather than introducing external complexity. It offers a robust, open-source alternative to proprietary HA solutions, with support for modern Postgres versions and flexible architectures.
Postgres extension and service for automated failover and high-availability
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Implements a state machine that dynamically manages synchronous_standby_names to prevent data loss during node failures, as highlighted in the README's explanation of secondary node unavailability.
Leverages in-core synchronous replication facilities, avoiding external dependencies and reducing complexity by building on PostgreSQL's built-in reliability.
Extends high-availability to Citus distributed PostgreSQL clusters, protecting both coordinators and workers, as detailed in the README's Citus HA section with architecture diagrams.
Supports production setups with multiple standby nodes for enhanced availability, demonstrated in the 'Multiple Standbys' section with scalable architecture examples.
Requires a separate monitor node to orchestrate failover, adding operational overhead and a potential single point of failure if not properly managed.
Binary packages are primarily available for Debian/Ubuntu; other systems require manual compilation or complex setup, as noted in the 'Other installation methods' section.
Only supports PostgreSQL versions 13 to 18, which may exclude users on older or cutting-edge versions not yet covered.