Skip to content

Comparison to other poolers

PgDog aims to be the de facto PostgreSQL proxy and pooler. Below is a feature comparison between PgDog and a few popular alternatives.

Basics

Feature PgBouncer PgCat PgDog
Connection pooler
Load balancer Requires external TCP proxy
Read/write separation No Basic support Advanced support handling edge cases
Failover No
Health checks No
Authentication md5, plain scram-sha-256, md5, plain
Metrics Admin database only OpenMetrics & admin database OpenMetrics & admin database
Mirroring No Partial support Partial support
TLS
Prepared statements Partial support
Plugins No Hardcoded in core Experimental, via shared libraries
Session variables in transaction mode Partial support Partial support

Sharding

Sharding is not supported in PgBouncer, so it will be excluded from this section.

Feature PgCat PgDog
Manual routing Only using comments (regex), doesn't work with prepared statements
Automatic routing No
Primary key generation No
Cross-shard queries No Partial support
COPY No
Postgres-compatible sharding functions No Same functions as declarative partitioning
Two-Phase Commit No Work in progress