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.
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.