Skip to content

Features overview

PgDog contains multiple foundational and unique features which make it a great choice for modern PostgreSQL deployments.

Most features are configurable and can be toggled and tuned. Experimental features are marked as such, and users are advised to test them before deploying to production. Most foundational features like load balancing, healthchecks, and query routing have been battle-tested and work well in production.

Summary

Note

PgDog is just getting started and most features are incomplete. The documentation is sometimes written to reflect the desired state. In the case where the feature is not complete, a note is added to that effect.

Feature Description State
Transaction mode Multiplex transactions and servers for busy PostgreSQL deployments. ✔️ Good
Load balancer Split query traffic evenly across multiple databases. 🔨 Work in progress
Healthchecks Periodically check databases to ensure they are up and can serve queries. ✔️ Good
Live configuration reloading Update configuration at runtime without having to restart PgDog. 🔨 Work in progress
Sharding Automatic query routing using a sharding key to scale writes horizontally. 🔨 Work in progress
Plugins Pluggable libraries to parse and route queries, loaded at runtime. ✔️ Good
Authentication Support for various PostgreSQL authentication mechanisms, e.g. SCRAM-SHA-256. 🔨 Work in progress
Session mode Compatibility mode with direct Postgres connections. 🔨 Work in progress

OS 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.