Skip to content

DeadLetterBehavior

Defined in: packages/pipeline-deadletter/src/dead-letter.behavior.ts:74

Pipeline behavior that forwards failed requests to a dead-letter sink.

When the wrapped handler (and anything nested inside it, such as ResilienceBehavior retries) throws, this behavior captures a DeadLetterRecord and hands it to the configured DeadLetterTransport, then — by default — re-throws so the caller still sees the failure. Payload and metadata must be serializable by that transport.

Transport-agnostic by design: it depends only on DeadLetterTransport, so the backend (BullMQ, RabbitMQ, Postgres, …) is a one-line swap: the transport passed to the constructor.

Ordering: place this outside retry behaviors so it only fires once retries are exhausted, but inside request validation behaviors so expected client validation errors are not dead-lettered.

Fire-and-forget event — capture and swallow

class SendWelcomeEmailOnUserCreated {
@pipeline.wrap({ kind: 'event' }, [DeadLetterBehavior, { rethrow: false }])
async handle(event: UserCreatedEvent) {}
}

new DeadLetterBehavior(transport, defaults?, logger?): DeadLetterBehavior

Defined in: packages/pipeline-deadletter/src/dead-letter.behavior.ts:99

DeadLetterTransport

DeadLetterBehaviorOptions

PipelineLogger

DeadLetterBehavior

readonly static [PIPELINE_BEHAVIOR_CONTRACT]: IPipelineBehaviorContract

Defined in: packages/pipeline-deadletter/src/dead-letter.behavior.ts:75

handle(context, next): Promise<unknown>

Defined in: packages/pipeline-deadletter/src/dead-letter.behavior.ts:114

IPipelineContext

NextDelegate

Promise<unknown>

IPipelineBehavior.handle