Stop vibe-debugging. Every exception, every backtrace, grouped so you see patterns, not noise. Learn more →
Top 7 Java connection-pool Projects
-
This caught two N+1 queries and a missing `connection.close()` in a rarely-hit endpoint — exactly the kind of bugs that sleep until traffic spikes wake them up. ## Gotchas - **maxLifetime = server timeout** is a race condition, not a match. Always go 30+ seconds shorter. - **PgBouncer transaction mode breaks prepared statements silently.** You will only see errors under load, which makes debugging painful. Disable caching upfront. - **Pool sizing formula uses app instance cores, not database cores.** A 64-core DB server does not mean you need 128 connections. You probably need 8–10 per node. - **connectionTimeout at 30 seconds is too generous.** Your mobile clients have already left. Use 5 seconds, fail fast, and handle retries at the application layer. - **Connection leaks hide in low-traffic endpoints.** Add detection early, not after your first spike. ## Conclusion The connection pool is the narrowest pipe in your mobile backend. We spent two weeks tuning application code that turned out not to matter. The pool config took an afternoon and fixed everything. Start with `maxLifetime` below your server-side timeouts, disable prepared statement caching when using PgBouncer transaction mode, and size your pool per app instance — not per database. These three changes took our p99 from 2,400 ms to 85 ms under 10x load. **Further reading:** - [HikariCP Configuration Guide](https://github.com/brettwooldridge/HikariCP#frequently-used) - [PostgreSQL Wiki: Number of Connections](https://wiki.postgresql.org/wiki/Number_Of_Database_Connections) - [PgBouncer Feature Matrix](https://www.pgbouncer.org/features.html)
-
AppSignal
AppSignal knows why the f*#k it crashed. Stop vibe-debugging. Every exception, every backtrace, grouped so you see patterns, not noise.
-
c3p0
a mature, highly concurrent JDBC Connection pooling library, with support for caching and reuse of PreparedStatements.
-
FlexyPool
FlexyPool adds metrics and failover strategies to a given Connection Pool, allowing it to resize on demand.
-
spring-boot-data-source-decorator
Spring Boot integration with p6spy, datasource-proxy, flexy-pool and spring-cloud-sleuth
-
-
-
sql-circuit-breaker
基于 MyBatis 拦截器的 SQL 超时熔断 Spring Boot Starter,慢 SQL 快速失败、保护连接池防雪崩;两态状态机、按 SQL 指纹维度、多数据源隔离。A MyBatis / MyBatis-Plus SQL-timeout circuit breaker Spring Boot Starter — fast-fails slow SQL to protect the DB connection pool from cascading failures. Two-state, per-SQL-fingerprint, multi-datasource.
Project mention: Your circuit breaker stops at the service layer. Slow SQL needs one too. | dev.to | 2026-06-16🔗 Source: GitHub · Gitee (a Star ⭐ helps if you find it useful)
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
Java connection-pool discussion
Java connection-pool related posts
-
Connection Pool Exhaustion in Mobile Backends
-
Connection Pool Tuning Under Load: How HikariCP Defaults Silently Kill Your Mobile Backend
-
A Major Postgres Upgrade with Zero Downtime
-
O que é o hikari pool?
-
FlexyPool: A tool to resize connection pool on demand
-
Melhorando o desempenho de aplicações Spring Boot - Parte II
-
About Pool Sizing
-
A note from our sponsor - AppSignal
www.appsignal.com | 6 Oct 2026
Index
What are some of the best open-source connection-pool projects in Java? This list will help you:
| # | Project | Stars |
|---|---|---|
| 1 | HikariCP | 21,228 |
| 2 | c3p0 | 1,317 |
| 3 | FlexyPool | 1,181 |
| 4 | spring-boot-data-source-decorator | 1,061 |
| 5 | agroal | 197 |
| 6 | Vibur DBCP | 124 |
| 7 | sql-circuit-breaker | 6 |