Does anyone run Postgres without PgBouncer?

abelanger1 pts0 comments

Does anyone run Postgres without PgBouncer? — brandur.org

brandur.org

Articles

Atoms

Fragments

Newsletter

Sequences

Now

Uses

About

Auto

Does anyone run Postgres without PgBouncer?

Fragment

🔗 Does anyone run Postgres without PgBouncer?

Published

Aug 12, 2026

I'm on X/Twitter at @brandur.

Aug 12, 2026

I got a nice shout-out from Ben Dicken over the weekend on an old article I’d written on managing database connections. (This guy is apparently the Mick Jagger of databases, because I can’t remember having gotten so many inbound LinkedIn invitations in one day before.)

Something that hit hard is that I wrote this article almost ten years ago.

Just as striking is that as I was reading back through it, I realized that despite being a decade old, it’s still pretty much up to date. Postgres is still, shall we say, not great at managing lots of connections, so you want to use local connection pools, short-term checkouts, and a pooler like PgBouncer.

It got me wondering: how standard is it to use a pooler, exactly? To answer that question, I made a table of all managed Postgres providers with household notoriety and whether they support PgBouncer, something close to PgBouncer, or no connection pooling at all.

Provider<br>Pooler?<br>Implementation<br>Availability / caveat

Aiven<br>PgBouncer<br>Startup plans and above

Alibaba RDS<br>PgBouncer

AWS RDS / Aurora<br>RDS Proxy<br>Separate managed proxy service

Azure PG<br>PgBouncer

Crunchy Bridge<br>PgBouncer

DigitalOcean<br>PgBouncer

EDB Postgres AI<br>PgBouncer

Fly.io MPG<br>PgBouncer

Google Cloud SQL<br>PgBouncer / managed pooling<br>Requires Enterprise Plus

Heroku<br>PgBouncer<br>Some plans only

IBM Cloud<br>Self-managed only

Neon<br>PgBouncer

OCI (Oracle)<br>No managed pooler

PlanetScale<br>PgBouncer

Railway<br>PgBouncer<br>Added as separate service

Render<br>PgBouncer<br>On paid databases

Supabase<br>Supavisor<br>Proprietary pooler

Tiger Cloud<br>PgBouncer

Not only is PgBouncer support widespread, but we see above that the overwhelming majority of providers bundle it out of the box. I&rsquo;d go a step further – since neither IBM nor Oracle is a service that any self-respecting person not part of an enterprise sales cycle would actually use, one hundred percent of plausible managed Postgres providers bundle a pooler.

If everyone needs it, is it really a non-core function?

In some ways, it could be argued that this status quo is okay. Users that need a connection pooler have access to one, and can use it to keep prod stable.

But there&rsquo;s undoubtedly a lot of wasted effort here. Every provider has had to come up with their own homegrown mechanism for getting multiple components set up and configured and establish a convention for where to find Postgres versus its bouncer. Every user needs to reference a guide explaining PgBouncer&rsquo;s limitations (e.g. don&rsquo;t listen/notify) and read about its pooling modes and tradeoffs.

Imagine if you went to your local car dealership and they sold you a car without a windshield. On the way over you&rsquo;d noticed that 100% of vehicles on the road did in fact have windshields, and for good reason because it turns out to be pretty dangerous to drive without one. Since you were the one that bought the car, it&rsquo;d be hard to argue that it&rsquo;s not your responsibility now to outfit it with a windshield before it&rsquo;s roadworthy, but it&rsquo;d also be fair to later be pissed off at the dealer for selling a vehicle that can&rsquo;t just be driven off the lot.

Reintegration

What if there was a world where you went to your favorite Postgres provider and you got one database URL, one port, and no extra configuration or caveats to worry about? Your managed provider doesn&rsquo;t need to add an aftermarket windshield because one came with the car already. We know a place like this can exist because that&rsquo;s already how things work in MySQL and Mongo-land.

There are reasons it doesn&rsquo;t happen, like reviving the age-old processes versus threads debate, which very few contributors are venerated enough to push for progress on, but given the developer-years&rsquo; worth of effort in working around Postgres&rsquo; lack of connection pooling, it&rsquo;s hard to argue this wouldn&rsquo;t be one of the highest-impact operational improvements possible.

Did I make a mistake? Please consider sending a<br>pull request.

pgbouncer rsquo postgres pooler managed without

Related Articles