Skip to main content
Table of Contents

Namespace Stratara.Abstractions.Outbox

Classes

OutboxEntry

Durable outbox row — persists a serialised payload (command envelope or event bundle) for later delivery by the outbox worker. Written by dispatchers when the direct bus publish fails.

Interfaces

ICommandOutboxDispatcher

Enqueues commands for asynchronous out-of-process execution by the command-handling worker. Implementations first try direct publish (fast path) and fall back to the outbox table if the bus is unreachable.

IEventBundleOutboxDispatcher

Enqueues event bundles produced by the event-source on save for projection and saga workers to consume. Implementations first try direct publish and fall back to the outbox table if the bus is unreachable.

IOutboxLock

Mutual-exclusion primitive that coordinates outbox-drain access across multiple host instances. The outbox worker calls TryAcquireAsync(TimeSpan, CancellationToken) at the start of every polling cycle; only the instance that receives a non-null handle proceeds to drain. Other instances skip the cycle and re-attempt at the next poll interval.

IOutboxLockHandle

Disposable handle returned by TryAcquireAsync(TimeSpan, CancellationToken). Disposing the handle releases the lock; if disposal fails or never runs, the lock is auto-released once the lease expires in the underlying store.

IOutboxRepository

Repository over the outbox_entry table — durable queue of messages that couldn't be published directly to the bus and are retried by the outbox worker.