For connection transaction management, the strongest matches are encode/databases (This asynchronous database abstraction layer provides connection pooling and), go-gorm/gorm (GORM is a comprehensive object-relational mapping library for Go) and seata/seata (Seata is a distributed transaction coordinator that manages global). knex/knex and dtm-labs/dtm round out the shortlist. Each is ranked by relevance to your query, popularity and recent activity.
Hand-picked open-source database transaction managers for connection handling. Compare top repositories, star ratings, and alternatives to find the right fit.
This project is an asyncio database abstraction layer that provides a common interface for performing non-blocking database operations in Python. It functions as an asynchronous database driver wrapper and a SQL expression builder, allowing for the construction of raw SQL strings from structured Python objects. The library includes an asyncio connection pool manager that utilizes task-local storage to handle connection lifecycles and reduce resource overhead. It also serves as an async database transaction manager, wrapping operations in atomic transactions and savepoints to maintain data int
This asynchronous database abstraction layer provides connection pooling and transaction management for Python applications, though it does not cover distributed transactions or reactive streams.
GORM is a developer-focused object-relational mapping library for Go that provides a comprehensive data persistence framework. It serves as a database access layer, allowing developers to map application structures to database tables and perform CRUD operations using a fluent, type-safe query builder instead of writing raw SQL. The library distinguishes itself through its association-aware persistence, which automatically tracks and synchronizes complex entity relationships during database operations. It utilizes a driver-agnostic interface to maintain consistent behavior across various stora
GORM is a comprehensive object-relational mapping library for Go that provides built-in connection pooling, transaction management, and automated rollbacks, though it is primarily an ORM rather than a dedicated connection pool library.
Seata is a distributed transaction coordinator and consistency framework designed to maintain data integrity across multiple microservices. It functions as a manager that synchronizes state across separate databases to ensure atomic commits or rollbacks of global transactions. The project provides a toolkit for implementing distributed transaction patterns, using a two-phase commit protocol and centralized status tracking to prevent data anomalies. It orchestrates eventual consistency through state-machine-based tracking and message-driven coordination to handle timeouts and failures in distr
Seata is a distributed transaction coordinator that manages global transactions and automatic rollbacks across multiple databases and microservices, though it focuses less on basic connection pooling.
Knex is a multi-dialect database client that provides a programmatic SQL query builder, a connection pool manager, and a versioned schema migration tool. It enables programmatic database interaction across multiple SQL engines, including PostgreSQL, MySQL, SQLite3, SQL Server, CockroachDB, and Oracle. The project distinguishes itself through a fluent interface for constructing complex SQL statements and a dedicated framework for database seeding. It utilizes specialized dialects to translate generic query representations into database-specific syntax while maintaining a consistent API across
Knex is a database client and query builder with connection pooling capabilities across multiple SQL dialects, though it lacks built-in distributed transactions and reactive streams.
dtm is a distributed transaction framework and polyglot transaction coordinator designed to maintain data consistency across microservices. It functions as a Saga orchestration engine and a two-phase message coordinator, ensuring that multi-service operations either succeed completely or roll back to a consistent state. The project distinguishes itself by supporting multiple consistency patterns, including Saga, TCC, XA, and outbox patterns, allowing users to select the appropriate model for their specific application requirements. It provides a polyglot integration layer via HTTP and gRPC, e
This repository provides a distributed transaction framework and coordinator to manage data consistency and rollbacks across microservices, matching the transaction management and distributed transaction needs of the search.
Knex is a programmatic SQL query builder for Node.js applications. It provides a unified interface for generating database statements and managing structural versioning through a schema migration tool. The project features a multi-dialect database layer that translates programmatic queries into specific syntax for relational databases including PostgreSQL, MySQL, SQLite3, and MSSQL. This allows for writing database logic that remains compatible across different systems. The system includes infrastructure for managing reusable database connection pools and handling relational transactions to
Knex is a JavaScript SQL query builder and database abstraction layer that includes built-in connection pooling and transaction management, matching the core requirements despite its primary focus on query generation.
asyncpg is an asynchronous database driver and binary protocol client for PostgreSQL. It provides a non-blocking interface for executing SQL statements, streaming result sets, and managing data transfer between an application and a PostgreSQL database. The driver implements the PostgreSQL binary protocol directly to facilitate efficient data transfer and type conversion. It includes a connection pool to maintain and reuse open database connections, reducing the latency associated with repeated handshakes. The project covers a broad range of database integration capabilities, including atomic
This asynchronous PostgreSQL driver provides built-in connection pooling and transaction management capabilities, making it a fitting tool for efficient database integration though limited to Python and PostgreSQL.
Records is a SQL database client designed for executing raw queries and managing result sets through a simplified interface. It provides a parameterized SQL executor to bind values to placeholders, ensuring safe data handling and preventing injection attacks, alongside a database transaction manager for grouping operations into atomic units. The project includes a dedicated command-line interface for running database statements and exporting query results directly to local files. This tooling allows for the conversion of SQL result sets into multiple serialization formats, including CSV, JSON
Records is a Python SQL database client that provides a transaction manager for grouping operations into atomic units, though it focuses more on raw query execution and result export than advanced pooling or distributed transactions.
Kotlin SQL Framework
This Kotlin SQL framework handles database connection management, transactions, and multi-database support, though it lacks dedicated reactive streams and distributed transaction features.
Sequelize is an object-relational mapping library that provides a unified interface for managing relational data through code. By implementing the Active Record pattern, it maps database tables to application objects, allowing developers to perform standard create, read, update, and delete operations using high-level method calls. The library abstracts complex database interactions by translating these calls into optimized, engine-specific SQL statements, ensuring consistent behavior across different database systems. The project distinguishes itself through a comprehensive suite of tools for
Sequelize is an ORM library that handles database connection pooling and transaction management for relational data, making it a fitting tool for structured database operations despite lacking native reactive streams and distributed transactions.
Ebean is a Java object-relational mapping framework designed to simplify database persistence through automated query generation, schema migration, and transaction management. It uses metadata-driven mapping and bytecode enhancement to bridge the gap between application objects and relational database tables, providing a persistent layer that handles complex data interactions while maintaining consistency across unit-of-work boundaries. The framework distinguishes itself through its focus on developer productivity and performance optimization. It provides type-safe query builders that generat
Ebean is an ORM framework that provides built-in transaction management and connection pooling capabilities to simplify database persistence in Java applications.
Druid is a database connection management and monitoring framework designed to maintain persistent, high-performance links between applications and relational databases. It functions as a resource manager that automates the lifecycle of connection pools, reducing the overhead associated with repeatedly opening and closing network connections. The project distinguishes itself through an integrated query analysis engine that decomposes database statements into structured components. This capability enables real-time security auditing, syntax validation, and metadata extraction, allowing for the
Druid provides database connection pooling and comprehensive monitoring with a built-in SQL analysis engine for Java, though it does not explicitly focus on distributed transactions or reactive streams.
Tortoise ORM is an asynchronous object-relational mapper for Python that mirrors Django's model and queryset API while running on asyncio. It defines database tables as Python classes with typed fields and supports foreign key, many-to-many, and one-to-one relations, providing a chainable query API for filtering, annotating, grouping, and prefetching related objects without blocking the event loop. The ORM includes a built-in migration engine that detects model changes, generates migration files, and applies or reverts schema changes through a command-line tool. It connects to PostgreSQL, MyS
Tortoise ORM is an asynchronous database management library for Python that provides connection handling and query execution, making it a relevant building block for managing database interactions even though it focuses primarily on object-relational mapping rather than standalone connection pooling and transaction management.
HikariCP is a high-concurrency JDBC connection pooling library for Java applications. It provides a reusable set of database connections to reduce the overhead of creating new connections for every request, enabling low-latency database access for applications handling large volumes of simultaneous requests. The project utilizes lock-free connection pooling and non-blocking data structures to ensure high performance. It includes specialized optimizations such as bytecode-optimized statement caching on the driver side to reduce SQL parsing overhead and proxy-based connection wrapping to track
HikariCP is a high-concurrency connection pooling library for Java that provides low-latency database access, though it focuses primarily on pooling and leaves distributed transactions and reactive streams to other tools.
Connection pools for JDBC databases. Simple wrapper around C3P0.
This library provides connection pooling for JDBC databases as a simple wrapper around C3P0, making it a relevant tool for managing database connections even though it does not cover distributed transactions or reactive streams.
Hibernate ORM is a Java object-relational mapper and a full implementation of the Jakarta Persistence API. It serves as a SQL database abstraction layer that translates Java object models into relational database schemas to manage data persistence and lifecycles. The framework distinguishes itself with a multi-tenant data isolation framework for separating customer data within a single database instance. It also features a database schema generator that automatically produces and updates relational structures based on entity mappings. The system covers broad capability areas including transa
Hibernate ORM is a comprehensive Java persistence framework that handles connection pooling, transaction management, and two-phase commit protocols, making it a powerful solution for enterprise data management.
This project is a MySQL database driver for Node.js that establishes network connections and executes SQL queries using a native communication protocol. It functions as an asynchronous SQL client, providing a promise-based query interface and support for async/await patterns to manage non-blocking database operations. The library includes a full MySQL protocol implementation, serving as a toolkit for building custom database servers, proxies, or clients. It also operates as a connection pool manager and an injection prevention tool, utilizing prepared statements and parameterized queries to s
This project is a MySQL database driver and connection pool manager for Node.js, making it a relevant tool for handling connection pooling and basic transactions, though it lacks higher-level distributed transaction features and automatic rollback.
This project is a SQL database abstraction layer that provides a consistent object-oriented interface for interacting with multiple relational database systems. It includes a driver wrapper to standardize connections and result sets, a fluent query builder for constructing portable SQL statements, and a type mapper for converting database-specific data types into native application types and vice versa. The library enables programmatic schema management through a schema manager that can introspect database metadata, model structures as objects, and generate the SQL required to migrate between
This library provides multi-database abstraction and supports transactional features such as savepoints and nested transactions, though it lacks dedicated reactive streams and native distributed transaction orchestration.
Transaction manager for GoLang
This library handles transaction management and database coordination in Go applications, fitting the requested category even though it focuses less on general connection pooling and advanced distributed features.
| Repository | Stars | Language | License | Last push |
|---|---|---|---|---|
| encode/databases | 4K | Python | BSD-3-Clause | |
| go-gorm/gorm | 39.8K | Go | MIT | |
| seata/seata | 26K | Java | Apache-2.0 | |
| knex/knex | 20.3K | JavaScript | MIT | |
| dtm-labs/dtm | 10.9K | Go | BSD-3-Clause | |
| tgriesser/knex | 20.3K | JavaScript | MIT | |
| magicstack/asyncpg | 8K | Python | apache-2.0 | |
| kennethreitz/records | 7.2K | Python | ISC | |
| jetbrains/exposed | 9.3K | Kotlin | Apache-2.0 | |
| sequelize/sequelize | 30.3K | TypeScript | MIT |