• Category: Infrastructure
  • Status: discussion
  • Sources: PgDog writeup, HN discussion
  • Summary: The PgDog project published a post on why it built another Postgres connection pooler. PgDog is written in Rust on the Tokio runtime and parses SQL to track per-client session state, so that SET statements and LISTEN/NOTIFY keep working through transaction pooling, which PgBouncer-style poolers drop. It handles each client as an async task across cores rather than sharding pools across separate processes, and adds load balancing and sharding. The post cites pooling at 2 million queries per second in production deployments.
  • Why it matters: Preserving SET and LISTEN/NOTIFY under transaction pooling removes two common reasons teams cannot put a pooler in front of Postgres.

Send feedback on this story