At a glance
| Supported databases | PostgreSQL only |
| Pooling modes | Session and transaction (a statement value appears in the parameter table but is not described) |
| Routing and read/write splitting | Host selection by target_session_attrs per rule (for example read-only to standbys); no SQL parsing to split statements |
| Load balancing and failover | Random balancing across listed hosts, preferring localhost, then the same availability zone, then matching session attributes |
| Authentication and TLS | md5, scram-sha-256, clear text, cert, PAM, LDAP, block or none per rule; TLS to clients and servers |
| Prepared statements | Supported in transaction mode with pool_reserve_prepared_statement |
| Deployment | Self-hosted on Linux x86 and x86_64 (built with cmake, gcc and OpenSSL) |
| Licensing | BSD 3-Clause, free |
Odyssey is a PgBouncer alternative built for large installations: worker threads share global server pools, and each user and database pair can have its own pooling mode, authentication and limits. It is Linux-only and its documentation is thinner than PgBouncer's, so expect to read the configuration reference closely.
Overview
Odyssey is a connection pooler and request router for PostgreSQL, developed at Yandex and maintained by the Yandex Cloud managed databases (MDB) team. Unlike single-threaded poolers, it runs several worker threads that handle authentication and proxying while sharing global server connection pools. Pools are defined per database and user pair, each with its own authentication method, pool mode and limits, which the documentation calls rules.
Two pool modes are documented: session and transaction. In transaction mode Odyssey tracks transaction state and, if a client disconnects mid-transaction, can cancel and roll back the work before reusing the server connection. Prepared statements in transaction mode are enabled per rule with pool_reserve_prepared_statement. The repository is active: v1.5.2 was released on 13 September 2026 and a 1.6.0 release candidate followed on 5 October 2026, with recent work on SCRAM passthrough.
Key features
- Multi-threaded architecture with worker threads sharing global server pools
- Per database and user rules with separate pool mode, authentication and limits
- Session and transaction pool modes, with rollback of transactions abandoned by a disconnected client
- Prepared statement support in transaction mode (pool_reserve_prepared_statement)
- Host balancing across several PostgreSQL servers with target_session_attrs (read-write, read-only, prefer-standby, any) and availability-zone preference
- Authentication by md5, scram-sha-256, clear text, client certificate, PAM or LDAP, with full TLS
- Prometheus metrics, an admin console, pause, soft out-of-memory handling and online restart
Integrations and ecosystem
Pros and cons
Pros
- Uses several CPU cores in one process, unlike single-threaded poolers
- Fine-grained rules per database and user
- Actively developed by a cloud provider that runs it in production
- Built-in Prometheus metrics
Cons
- Linux on x86 or x86_64 only, per the README
- Documentation is less complete than PgBouncer's, with some ambiguous defaults in the reference tables
- Fewer distribution packages and less community material than PgBouncer
Pricing
Odyssey is free, open source software under the BSD 3-Clause licence, published by Yandex on GitHub. There is no paid edition or published commercial support offer from the project; costs are your own servers and operations.
Pricing checked on the vendor's official page on 7 November 2026. Prices change; confirm before buying.
Who it is best for
Teams running large PostgreSQL fleets on Linux that have outgrown a single-threaded pooler and want per-user rules and availability-zone aware balancing in one process.
Typical use cases
- Pooling thousands of client connections on a multi-core host with one pooler process
- Sending read-only users to standbys and read-write users to the primary with target_session_attrs
- Giving each tenant or service its own pool mode, limits and authentication rule
- Exposing pooler metrics to Prometheus for capacity planning
Who should look elsewhere
- Small deployments where PgBouncer is simpler to package and document.
- Teams that need SQL-aware read/write splitting or failover orchestration: see Pgpool-II.
Verdict
Odyssey is a credible, actively maintained PgBouncer alternative when a single-threaded pooler becomes the bottleneck or you need per-rule settings. Its smaller ecosystem and Linux-only builds mean most teams should start with PgBouncer and move to Odyssey for a specific scaling reason.
Frequently asked questions
Is Odyssey still maintained?
Yes. As of 7 November 2026 the yandex/odyssey repository is not archived, had commits that day, released v1.5.2 on 13 September 2026 and published 1.6.0-rc1 on 5 October 2026.
How is Odyssey different from PgBouncer?
Odyssey is multi-threaded and configures pool mode, authentication and limits per database and user rule, with availability-zone aware host balancing. PgBouncer is single-threaded per instance, offers a statement pooling mode and has wider packaging and documentation. Both support prepared statements in transaction mode.
Does Odyssey run on Windows or macOS?
Not according to the README, which lists Linux on x86 and x86_64 as the supported platform.
Sources
- Odyssey GitHub repository (README)
- Odyssey releases
- Odyssey licence (BSD 3-Clause)
- Odyssey documentation home
- Odyssey documentation: pooling
- Odyssey documentation: rules configuration
- Odyssey documentation: balancing
Checked November 2026.
Listed in: Database Proxy & Connection Pooling.
How we research reviews and what star ratings mean: our editorial method.