Keel multiplexes thousands of application connections into a lean pool — transparently, with zero code changes. Stop hitting connection limits. Ship faster.
Most databases handle a few hundred simultaneous connections before performance degrades. When your app grows, you hit this wall — and paying for a bigger database doesn’t fix the underlying problem.
The result: Keel serves 500 app connections using just 25 backend connections — a 20× reduction — while every query still completes normally. Your database never notices the traffic spike.
Everything you need to handle massive database load — and nothing you don’t.
Transaction pooling holds just 25 backend connections open while transparently serving thousands of simultaneous app clients. Your database stays well within its limit.
Keel speaks PostgreSQL and MySQL natively. Change your app’s database host to Keel’s address. That is the only change required — no driver swaps, no query rewrites.
In smart mode, Keel automatically routes read queries to replicas and writes to the primary. Cut your primary load in half without touching your app.
SCRAM-SHA-256, TLS/mTLS, and cloud IAM authentication (AWS RDS, GCP Cloud SQL, Azure Database) are built in. Secure by default, configurable for your environment.
Official operator, Helm charts, and Docker images. Auto-scales with your deployment and integrates with Patroni, CloudNativePG, and Percona XtraDB Cluster.
Prometheus metrics, OpenTelemetry distributed tracing, and a live admin console. Know exactly what is happening in your connection pool at every moment.
Three steps. No recompiling. No code changes. No drama.
Grab Keel from Docker Hub or download a pre-built binary.
docker pull virtlabs/keel:latest
A minimal keel.ini with just three sections:
[keel]
port = 6432
workers = 0 # 0 = one per CPU core
[pool]
mode = transaction
max_pool_size = 25
[backend "primary"]
host = your-database-host
port = 5432
role = RW
Run the container, then point your app at localhost:6432 instead of your database. Done.
docker run -d \
-p 6432:6432 \
-v ./keel.ini:/etc/keel/keel.ini \
virtlabs/keel:latest
Pick the mode that fits your workload. Switch anytime with a hot reload — no restarts, no downtime.
proxy
Pure TCP passthrough with optional TLS termination. Minimal overhead, no pooling. Great for TLS offload or debugging.
pool
Recommended
Transaction pooling with prepared-statement virtualization. Serves thousands of clients from a handful of backend connections. The right choice for most production workloads — including ORMs like Hibernate, SQLAlchemy, and ActiveRecord.
smart
Everything in pool plus automatic read/write routing. Reads go to replicas, writes go to the primary. Zero app changes needed.
full
Maximum feature set: extensible hooks, horizontal sharding, audit logging, and distributed transaction tracking. For teams that need full control.