spakky-outbox¶
Outbox 패턴 — 이벤트 발행 보장
Event Bus¶
spakky.outbox.bus.outbox_event_bus
¶
Outbox Event Bus — sync and async implementations replacing IEventBus/IAsyncEventBus via @Primary.
OutboxEventBus(storage)
¶
Bases: IEventBus
Intercepts integration events and stores them in the Outbox table (sync).
Replaces the default DirectEventBus so that events are persisted atomically within the same database transaction as the business data.
Source code in core/spakky-outbox/src/spakky/outbox/bus/outbox_event_bus.py
AsyncOutboxEventBus(storage)
¶
Bases: IAsyncEventBus
Intercepts integration events and stores them in the Outbox table (async).
Replaces the default AsyncDirectEventBus so that events are persisted atomically within the same database transaction as the business data.
Source code in core/spakky-outbox/src/spakky/outbox/bus/outbox_event_bus.py
options: show_root_heading: false
Ports¶
spakky.outbox.ports.storage
¶
Outbox storage port.
IOutboxStorage
¶
options: show_root_heading: false
Relay¶
spakky.outbox.relay
¶
Outbox relay module.
options: show_root_heading: false
Common¶
spakky.outbox.common.config
¶
Outbox configuration.
OutboxConfig()
¶
Bases: BaseSettings
Outbox plugin configuration loaded from environment variables.
Load outbox configuration from environment variables.
Source code in core/spakky-outbox/src/spakky/outbox/common/config.py
options: show_root_heading: false
spakky.outbox.common.message
¶
Outbox message model.
OutboxMessage(id, event_name, payload, created_at, published_at=None, retry_count=0, claimed_at=None)
dataclass
¶
Persistence-agnostic Outbox message model.
options: show_root_heading: false
Errors¶
spakky.outbox.error
¶
Outbox error classes.
AbstractSpakkyOutboxError
¶
Bases: AbstractSpakkyFrameworkError, ABC
Base exception for Spakky Outbox errors.
options: show_root_heading: false