Transaction mode
Transaction mode allows PgDog to share just a few PostgreSQL server connections with thousands of clients.
How it works
All queries served by PostgreSQL run inside transactions. Transactions can be started manually by sending a BEGIN
query. If a transaction is not started, each query sent to PostgreSQL is executed inside its own, automatic, transaction.
PgDog takes advantage of this behavior and can separate client transactions inside client connections and send them, individually, to the first available PostgreSQL server in its connection pool.

In practice, this allows thousands of client connections to use just one PostgreSQL server connection to execute queries. Most connection pools will have multiple server connections, so hundreds of thousands of clients can connect to PgDog and execute queries over just a handful of PostgreSQL server connections.
This feature is essential for busy applications to use PostgreSQL in production.
Enable transaction mode
Transaction mode is enabled by default. This is controllable via configuration, at the global and user level: