Transaction Manager Port¶
transaction_manager_port
¶
Outbound port for transactional boundaries.
Defines the TransactionManagerPort contract for explicit transaction
control (begin, commit, rollback) and transactional function execution.
Responsibilities
- Begin, commit, and roll back transactions.
- Execute arbitrary functions within transactional boundaries.
Non-Responsibilities
- Implement business logic.
- Manage connection pooling or resource cleanup.
TransactionManagerPort
¶
Bases: OutboundPort
Outbound port for explicit transaction management.
Class Type Parameters:
| Name | Bound or Constraints | Description | Default |
|---|---|---|---|
TransactionSessionContext
|
The application-defined session context for transactions. |
required | |
TransactionErrorType
|
The error type for transactional failures. |
required |
Responsibilities
- Begin, commit, and roll back transactions.
- Execute arbitrary functions within transactional boundaries.
Non-Responsibilities
- Implement business logic.
- Manage connection pooling or resource cleanup.
Example
Source code in src/forging_blocks/application/ports/outbound/transaction_manager_port.py
begin(context: TransactionSessionContext) -> Result[None, TransactionErrorType]
abstractmethod
async
¶
commit() -> Result[None, TransactionErrorType]
abstractmethod
async
¶
rollback() -> Result[None, TransactionErrorType]
abstractmethod
async
¶
execute_in_transaction(fn: Callable[..., Awaitable[ResponseType]], context: TransactionSessionContext, *args: object, **kwargs: object) -> Result[ResponseType, TransactionErrorType]
abstractmethod
async
¶
Execute fn inside a begin/commit boundary.