Why we built yet another Postgres connection pooler
L'article présente PgDog, un proxy visant à mettre à l'échelle Postgres en offrant notamment du pooling de connexions sans obliger à modifier le code applicatif. Contrairement à d'autres poolers qui introduisent des abstractions fuyantes, PgDog analyse les commandes SET et synchronise l'état de session client-serveur pour éviter les fuites d'état entre connexions. Il prend en charge LISTEN et NOTIFY en relayant les messages entre processus PgDog et en préservant la sémantique transactionnelle de Postgres. Implanté en Rust sur le runtime asynchrone Tokio, PgDog utilise le multithreading pour mieux exploiter les CPU et réduire le besoin de sharding des pools par processus. Le projet est open source, en production depuis plus d'un an à des débits élevés, et se propose comme alternative aux solutions existantes comme PgBouncer ou RDS Proxy.