All Classes and Interfaces
Class
Description
Base JDBC event store with standard SQL implementations.
Callback invoked after a transaction commits to trigger hot-path event processing.
Represents an aggregate type identifier.
Spring Boot demo for outbox framework.
Provides JDBC connections for non-transactional outbox operations
(e.g.
Thread factory that creates named daemon threads with a sequential suffix.
ConnectionProvider backed by a DataSource.ConcurrentHashMap-based in-flight tracker with optional time-based expiry.Thread-safe registry mapping (aggregateType, eventType) pairs to listeners.
Bridges
OutboxWriter to the dispatcher's hot queue by implementing
AfterCommitHook.Bridges
OutboxPoller to the dispatcher's cold queue by implementing
OutboxPollerHandler.Immutable event envelope containing metadata and payload for an outbox event.
Cross-cutting hook for observing or modifying event dispatch.
Listener that reacts to outbox events.
Lifecycle states of an outbox event.
Persistence contract for outbox events, managing status transitions
through the lifecycle: NEW → DONE, NEW → RETRY → DONE, or NEW → DEAD.
Unchecked exception wrapping JDBC errors thrown by
AbstractJdbcEventStore
and its subclasses.Represents an event type identifier.
Retry policy using exponential backoff with jitter.
H2 event store.
Tracks in-flight events to prevent duplicate concurrent dispatch of the same event.
Registry for JDBC event stores with auto-detection support.
Lightweight JDBC helper to reduce boilerplate in event store implementations.
Lightweight transaction manager for manual JDBC usage.
An active transaction handle.
Lightweight JSON encoder/decoder for
Map<String, String> header maps.Registry for looking up event listeners by (aggregateType, eventType).
Observability hook for exporting outbox counters and gauges to a metrics backend.
Default no-op implementation that discards all metrics.
Demonstrates the multi-datasource outbox pattern: two independent H2 databases
("Orders" and "Inventory"), each with its own full outbox stack, sharing a
stateless
EventListener.MySQL event store.
Simple demo showing outbox framework usage without Spring.
Dual-queue event processor that dispatches outbox events to registered listeners.
Read-only record representing a persisted outbox event row, as returned by
the poller and dispatcher when reading from the database.
Scheduled database scanner that polls for pending outbox events as a fallback
when the hot path is unavailable or events are dropped.
Callback for events discovered by the
OutboxPoller.Primary entry point for writing events to the outbox within an active transaction.
PostgreSQL event store.
Internal wrapper pairing an
EventEnvelope with its origin queue and attempt count.Indicates whether an event arrived via the hot path or cold (poller) path.
Strategy for computing the delay before retrying a failed event dispatch.
TxContext implementation that bridges to Spring's transaction infrastructure
via TransactionSynchronizationManager.A simple string-based aggregate type for dynamic scenarios.
A simple string-based event type for dynamic scenarios.
TxContext implementation that stores transaction state in a ThreadLocal.Abstracts the transaction lifecycle so outbox operations can participate in
the caller's transaction without depending on a specific transaction manager.
Thrown when no listener is registered for an event's
(aggregateType, eventType) combination.