PgBouncer
Pool de conexiones ligero para PostgreSQL. Sus propios procesos hablan el protocolo de PostgreSQL en ambos extremos. Protege a PG de un exceso de conexiones: cada proceso de PG cuesta unos 10 MB de RAM, y un pool de PgBouncer con 100 conexiones puede atender a 1000 clientes.
Tres modos de pool: session (el cliente mantiene una conexión al backend durante toda la sesión, el que menos funciones pierde), transaction (se libera tras el COMMIT, el más habitual, aunque rompe LISTEN/NOTIFY y las sentencias preparadas), y statement (se libera tras cada sentencia, el que más rompe pero con la rotación de pool más rápida). Competencia: PgCat (en Rust, más moderno), Pgpool-II (más funciones, incluido balanceo de carga), Odyssey (de Yandex). Aurora RDS Proxy es la alternativa gestionada. Desde PG 17 existe un pooler integrado en PostgreSQL, aunque todavía no está listo para producción.