{"categories":[{"label":"Python Modules","url":"https://skillfed.io/packages/category/software-development-libraries-python-modules/8"},{"label":"Database","url":"https://skillfed.io/packages/category/database/2"}],"enrichment":{"capability":"Provides a generic transaction management system for Python, handling commit/abort cycles, data manager coordination, and transaction hooks.","skillfed_tags":["transaction-control","data-manager","zodb"],"use_cases":["Build a standalone application with explicit transaction control and multi-step commit/abort semantics without using ZODB.","Coordinate multiple data managers (databases, caches, message queues) within a single atomic transaction.","Implement before-commit hooks to validate or transform data before persistence, and abort hooks for cleanup.","Manage thread-local transaction state in multi-threaded applications using ThreadTransactionManager.","Retry transient errors automatically using the transaction manager's run method with configurable retry logic."],"what_it_does":"Transaction is a generic transaction implementation for Python that manages the lifecycle of transactions\u2014commit, abort, and rollback\u2014along with coordination of multiple data managers. It is primarily used by ZODB (Zope Object Database) but can be used standalone for any application needing explicit transaction control. The package provides transaction managers, hooks for before-commit and abort operations, synchronizers for coordinating external resources, and APIs for storing transaction-scoped data.\n\nThe package is mature (first release in 2007) and actively maintained. It has a single runtime dependency on zope.interface and installs with low friction. It supports modern Python versions (3.10 through 3.14) and runs on both CPython and PyPy. The API includes explicit transaction modes, retry logic for transient errors, and mechanisms to avoid cyclic references and memory leaks.","worth_installing":"Yes, if you need explicit transaction management in Python. It is stable, actively maintained, has no known vulnerabilities, and installs cleanly. However, verify that ZPL-2.1 licensing is compatible with your project, and confirm that this package (primarily designed for ZODB) is the right fit for your use case rather than a database-specific transaction API."},"id":"transaction","links":{"html":"https://skillfed.io/packages/transaction","md":"https://skillfed.io/packages/transaction.md","pypi":"https://pypi.org/project/transaction/"},"maintenance":{"status":"active"},"meta":{"latest_release":"2026-03-17","license_spdx":"ZPL-2.1","license_treatment":"unclear","name":"transaction","python_support":"supports_current","summary":"Transaction management for Python"},"popularity":{"monthly_downloads":852246,"position":4900,"tier":"top_5000"},"security":{"n_vulnerabilities":0},"version":"5.1"}
