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.