All Classes and Interfaces

Class
Description
Base JDBC age-based purger that deletes all events older than a cutoff, regardless of status.
Base JDBC event purger with default subquery-based SQL that works for H2 and PostgreSQL.
Base JDBC outbox store with standard SQL implementations.
Represents an aggregate type identifier.
Spring Boot demo for outbox framework.
Spring Boot Starter demo — zero-config auto-configuration.
An EventListener bound to a specific (aggregateType, eventType) pair.
Provides JDBC connections for non-transactional outbox operations (e.g. dispatcher status updates, poller queries).
Thread factory that creates named daemon threads with a sequential suffix.
Convenience facade for querying, counting, and replaying DEAD events.
ConcurrentHashMap-based in-flight tracker with optional time-based expiry.
Thread-safe registry mapping (aggregateType, eventType) pairs to listeners.
Default implementation of OutboxWriter that persists events via OutboxStore within an active TxContext transaction.
Bridges OutboxPoller to the dispatcher's cold queue by implementing OutboxPollerHandler.
Bridges OutboxWriter to the dispatcher's hot queue by implementing WriterHook.
Result returned by EventListener.onEvent(EventEnvelope) to control post-dispatch behavior.
Event cannot be processed; immediately mark as DEAD without retry.
Event processed successfully.
Event not yet complete; reschedule after the specified delay.
 
 
Immutable event envelope containing metadata and payload for an outbox event.
Builder for EventEnvelope.
Base class for all outbox event processing exceptions.
Cross-cutting hook for observing or modifying event dispatch.
 
 
Listener that reacts to outbox events.
Deletes terminal outbox events (DONE and DEAD) older than a given cutoff.
Lifecycle states of an outbox event.
Represents an event type identifier.
Retry policy using exponential backoff with jitter.
JsonCodec implementation backed by Gson.
H2 age-based purger.
H2 event purger.
H2 outbox store.
Tracks in-flight events to prevent duplicate concurrent dispatch of the same event.
In-memory OutboxStore for unit testing without JDBC.
JsonCodec implementation backed by Jackson ObjectMapper.
Registry for JDBC outbox 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.
Codec for JSON serialization/deserialization used by the outbox framework.
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.
Micrometer-based implementation of MetricsExporter.
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 age-based purger.
MySQL event purger.
MySQL outbox store.
ConnectionProvider that always returns null.
 
Composite entry point that wires an OutboxDispatcher, OutboxPoller, and OutboxWriter into a single AutoCloseable unit.
Base builder with shared required and optional parameters.
Builder for multi-node deployments: hot path + claim-based poller locking.
Builder for ordered delivery: poller-only, single worker, no retry.
Builder for single-node deployments: hot path + poller fallback.
Builder for writer-only (CDC) mode: no dispatcher or poller.
Auto-configuration for the outbox framework.
 
Simple demo showing outbox framework usage without Spring.
Measures hot-path end-to-end latency: write -> afterCommit -> dispatch -> listener callback.
 
 
 
 
 
Dual-queue event processor that dispatches outbox events to registered listeners.
Builder for OutboxDispatcher.
Read-only record representing a persisted outbox event row, as returned by the poller and dispatcher when reading from the database.
Manages the outbox lifecycle: starts the poller after all listeners are registered, and stops the poller/dispatcher during application shutdown.
Marks a Spring bean as an outbox event listener.
Scans for beans annotated with OutboxListener and registers them in the DefaultListenerRegistry.
Auto-configuration for Micrometer metrics integration.
Scheduled database scanner that polls for pending outbox events as a fallback when the hot path is unavailable or events are dropped.
Builder for OutboxPoller.
Measures poller throughput: pollPending/claimPending + markDone per batch.
 
 
 
 
 
 
Callback for events discovered by the OutboxPoller.
Configuration properties for the outbox framework.
 
 
 
 
 
 
 
Scheduled component that purges terminal outbox events (DONE and DEAD) older than a configurable retention period.
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 AbstractJdbcOutboxStore and its subclasses.
Convenience builder for setting up outbox test fixtures without a database.
Builder for OutboxTestSupport.
Measures OutboxWriter.write() throughput (ops/sec) within a JDBC transaction.
 
 
 
 
 
Primary entry point for writing events to the outbox within an active transaction.
Thrown when an event payload cannot be deserialized from JSON.
PostgreSQL age-based purger.
PostgreSQL event purger.
PostgreSQL outbox 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.
WriterHook that records all lifecycle invocations for test assertions.
Signals a transient failure that may succeed on retry.
Exception thrown by an EventListener to signal a failed attempt that should be retried after a handler-specified delay.
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.
In-memory TxContext stub for unit testing outbox code without a database.
Shared table name validation for JDBC outbox components.
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.
Signals a deterministic failure that will never succeed on retry.
Thrown when no listener is registered for an event's (aggregateType, eventType) combination.
 
Lifecycle hook for OutboxWriter batch writes, replacing the former AfterCommitHook with richer before/after semantics.