Beignet API reference
    Preparing search index...

    Interface DrainOutboxOptions

    Options for draining one outbox batch.

    interface DrainOutboxOptions {
        batchSize?: number;
        eventBus?: {
            publish<E extends EventPayloadDef<string, StandardSchema>>(
                event: E,
                payload: InferEventPayload<E>,
                options?: EventPublishOptions,
            ): MaybePromise<void>;
        };
        instrumentation?: ProviderInstrumentationTarget;
        instrumentationContext?: OutboxInstrumentationContext;
        jobs?: JobDispatcherPort;
        leaseMs?: number;
        now?: Date;
        onDeadLetter?: (
            error: unknown,
            message: ClaimedOutboxMessage,
        ) => MaybePromise<void>;
        onError?: (
            error: unknown,
            message: ClaimedOutboxMessage,
        ) => MaybePromise<void>;
        onSettlementError?: (
            settlementError: unknown,
            message: ClaimedOutboxMessage,
            deliveryError: unknown,
        ) => MaybePromise<void>;
        outbox: OutboxPort;
        registry: OutboxRegistry;
        retryDelayMs?:
            | number
            | (
                (
                    args: { error: unknown; message: ClaimedOutboxMessage; now: Date },
                ) => number
            );
    }
    Index
    batchSize?: number

    Maximum messages to claim in one drain pass.

    eventBus?: {
        publish<E extends EventPayloadDef<string, StandardSchema>>(
            event: E,
            payload: InferEventPayload<E>,
            options?: EventPublishOptions,
        ): MaybePromise<void>;
    }

    Event bus used for event messages.

    Optional instrumentation target for delivery, retry, and dead-letter visibility.

    instrumentationContext?: OutboxInstrumentationContext

    Optional correlation fields attached to outbox instrumentation events.

    Job dispatcher used for job messages.

    leaseMs?: number

    Claim lease duration in milliseconds.

    now?: Date

    Timestamp used for claiming and state updates.

    onDeadLetter?: (
        error: unknown,
        message: ClaimedOutboxMessage,
    ) => MaybePromise<void>

    Observer called after a failed delivery is successfully moved to the dead letter state. Observer failures are ignored.

    onError?: (error: unknown, message: ClaimedOutboxMessage) => MaybePromise<void>

    Observer called when delivery fails. Observer failures are ignored so the original delivery failure still controls retry/dead-letter behavior.

    onSettlementError?: (
        settlementError: unknown,
        message: ClaimedOutboxMessage,
        deliveryError: unknown,
    ) => MaybePromise<void>

    Observer called when a failed delivery cannot be settled as retryable or dead-lettered. Observer failures are ignored.

    outbox: OutboxPort

    Outbox storage port.

    registry: OutboxRegistry

    Registry used to resolve message names to event/job definitions.

    retryDelayMs?:
        | number
        | (
            (
                args: { error: unknown; message: ClaimedOutboxMessage; now: Date },
            ) => number
        )

    Retry delay in milliseconds or function for per-message delay.