spakky-outbox¶
Outbox 패턴 — 이벤트 발행 보장
EventBus¶
spakky.outbox.bus.outbox_event_bus
¶
Outbox Event Bus — sync and async implementations replacing IEventBus/IAsyncEventBus via @Primary.
OutboxEventBus(storage, propagator)
¶
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, propagator)
¶
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
포트¶
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
공통¶
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, headers, created_at, published_at=None, retry_count=0, claimed_at=None)
dataclass
¶
Persistence-agnostic Outbox message model.
options: show_root_heading: false
에러¶
spakky.outbox.error
¶
Outbox error classes.
AbstractSpakkyOutboxError
¶
Bases: AbstractSpakkyFrameworkError, ABC
Base exception for Spakky Outbox errors.
options: show_root_heading: false