OptionalbatchMaximum eligible messages to handle in one drain pass.
OptionalconcurrencyMaximum messages delivered concurrently. Defaults to serial delivery. Values greater than one do not preserve delivery order.
OptionaleventEvent bus used for event messages. Required when the registry contains events.
OptionalheartbeatInterval between serialized claim renewals. Defaults to one third of the lease duration and must remain shorter than the lease.
OptionalinstrumentationOptional instrumentation target for delivery, retry, and dead-letter visibility.
OptionalinstrumentationOptional correlation fields attached to outbox instrumentation events.
OptionaljobsJob dispatcher used for job messages. Required when the registry contains jobs.
OptionalleaseClaim lease duration in milliseconds.
OptionalmaxMaximum time Beignet renews a claim for one delivery. When exceeded, the drain stops renewing and leaves final recovery to the last lease expiry.
OptionalnowClock used independently for claiming, renewal, settlement, and retry scheduling. Defaults to the system clock.
OptionalonObserver called after a failed delivery is successfully moved to the dead letter state. Observer failures are ignored.
OptionalonObserver called when delivery fails. Observer failures are ignored so the original delivery failure still controls retry/dead-letter behavior.
OptionalonObserver called when claim renewal degrades or ownership is lost. Observer failures are ignored.
OptionalonObserver called when a delivery outcome cannot be settled durably. Observer failures are ignored.
Outbox storage port.
Registry used to resolve message names to event/job definitions.
OptionalretryRetry delay in milliseconds or function for per-message delay.
OptionalwaitAbort-aware wait implementation. Inject a deterministic implementation in tests; production callers normally use the default timer.
Options for draining one outbox batch.