Skip to content

Transaction Context

transaction_context

Metadata for a single transactional boundary.

TransactionContext dataclass

Metadata for a single transactional boundary.

Parameters:

Name Type Description Default
transaction_id UUID

Unique identifier for the transaction.
Auto-generated when omitted.

uuid4()
started_at datetime

UTC timestamp marking when the transaction began.
Defaults to the current time.

(lambda: now(utc))()
isolation_level IsolationLevel

The isolation level requested for this
transaction. Defaults to READ_COMMITTED.

READ_COMMITTED
metadata dict[str, Any] | None

Arbitrary key-value pairs for cross-cutting concerns.

None
Source code in src/forging_blocks/foundation/context/transaction_context.py
@auto_freeze
@dataclass(frozen=True)
class TransactionContext:
    """Metadata for a single transactional boundary.

    Args:
        transaction_id: Unique identifier for the transaction.
            Auto-generated when omitted.
        started_at: UTC timestamp marking when the transaction began.
            Defaults to the current time.
        isolation_level: The isolation level requested for this
            transaction.  Defaults to ``READ_COMMITTED``.
        metadata: Arbitrary key-value pairs for cross-cutting concerns.
    """

    transaction_id: uuid.UUID = field(default_factory=uuid.uuid4)
    started_at: datetime = field(default_factory=lambda: datetime.now(timezone.utc))
    isolation_level: IsolationLevel = IsolationLevel.READ_COMMITTED
    metadata: dict[str, Any] | None = None