Features
PgDog provides foundational and unique features which make it a great choice for modern PostgreSQL deployments.
All features are configurable to fit your environment and can be toggled on/off. Most features are stable and used in production and at-scale. Some are experimental and users are advised to test them before deploying to production.
Summary
Feature | Description |
---|---|
Load balancer | Evenly distribute read queries between replicas and send write queries to the primary, allowing applications to connect to a single endpoint. |
Health checks | Ensure databases are up and can serve queries. Offline databases are blocked from serving queries. |
Transaction mode | Multiplex few PostgreSQL server connections between thousands of clients. |
Hot reload | Update configuration at runtime without restarting PgDog. |
Sharding | Query routing, data migration and schema management to scale PostgreSQL horizontally. |
Prepared statements | Support for Postgres named prepared statements in transaction mode. |
Plugins | Pluggable libraries to add functionality to PgDog at runtime, without recompiling code. |
Authentication | Support for various PostgreSQL user authentication mechanisms, like SCRAM. |
Session mode | Compatibility mode with direct PostgreSQL connections. |
Metrics | Real time reporting, including Prometheus/OpenMetrics and an admin database. |
Mirroring | Copy queries from one database to another in the background. |
Pub/Sub | Support for LISTEN /NOTIFY in transaction mode. |
Encryption | TLS encryption for client and server connections. |
Operating system support
PgDog doesn't use any OS-specific features and should run on all systems supported by the Rust compiler, e.g. Linux (x86 and ARM64), Mac OS, and Windows.
We recommend you run PgDog on Linux. A Docker image is available in our repository.