Skip to content

messaging: opt-in at-least-once dead-letter strategy for quorum queues #1568

Description

@gaborage

This was generated by AI during triage.

Surfaced by CodeRabbit on the review mirror of #1559 (ADR-106, 2026-09-08).

Observed

DeclareQueueWithDLQ now declares both the primary and the parking queue as quorum queues (#1548 / ADR-106). A quorum queue makes the queue itself replicated and durable, but the dead-letter hop keeps RabbitMQ's default dead-letter-strategy=at-most-once: a dead-lettered message is re-published to the DLX without internal publisher confirms, so it can be lost between the primary and the parking queue when the target is unavailable or a node fails. ADR-106's retention wording was narrowed to say exactly that.

Proposed shape

An opt-in on DeadLetterSpec (or the quorum shape rules) that sets x-dead-letter-strategy=at-least-once together with x-overflow=reject-publish on the primary, validated at declaration time like the other quorum-shape rules, and documented with its prerequisite (the broker's stream_queue feature flag; RabbitMQ ≥ 3.10). Default stays at-most-once so existing topologies are untouched. Not a break: additive field, opt-in.

Relation

#1548, ADR-106, [C64.12]; RabbitMQ docs: quorum-queues (dead-letter strategy), dlx.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions