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_entrytable — durable queue of messages that couldn't be published directly to the bus and are retried by the outbox worker.