Skip to main content
flowwarden-amqp provides an AMQP 0.9.1 publish-only implementation of the DlqStore SPI defined in FlowWarden Stream Core. It is a drop-in alternative to the default MongoDB DLQ backend — useful when your Spring Boot application already runs RabbitMQ (or any AMQP 0.9.1 broker) and you’d rather route failed events to a queue that the rest of your platform can consume. The implementation is broker-neutral: RabbitMQ is the reference target, but LavinMQ, Apache Qpid, ActiveMQ Classic, CloudAMQP and AWS MQ for RabbitMQ all work without code changes.

When to use

  • Your platform already brokers messages over AMQP and you want failed events routed there too — for fanout to alerting, ticket creation, audit pipelines, or a downstream replayer.
  • You want failed events out of the MongoDB perimeter — different retention policy, different ops team, different SLOs from your operational data.
  • You want per-stream routing — one exchange per criticality, one routing key per service — so downstream consumers can bind selectively.

When not to use

  • You need to inspect the DLQ from inside the application (findById, findByStreamName) — by design these return empty here. Stay on the default MongoDlqStore if your operators replay through the FlowWarden API or the Console.
  • You don’t already operate an AMQP broker — MongoDlqStore auto-configures with zero additional infrastructure and provides the same persistence guarantees.
  • You expect FlowWarden itself to drive replay — replay belongs to your AMQP consumer, not to the framework.

How it fits

The two backends are mutually exclusive at the SPI level (a single DlqStore bean wins). When flowwarden-amqp is on the classpath and a RabbitTemplate is available, it takes precedence over the Mongo default; user-declared DlqStore beans win over both. A hybrid that writes to both stores is achievable with a small composite bean — see Configuration → Mixing backends.

Compatibility

ComponentMinimumRecommended
Java1721
Spring Boot3.2.x3.2.x+
Spring AMQP3.2.x (via Boot BOM)3.2.x+
AMQP broker0.9.1 (RabbitMQ 3.8+ / LavinMQ 2.x+ / Qpid 8.x+)RabbitMQ 3.13+
FlowWarden Stream Core1.0.0-rc.31.0.0-rc.3+
flowwarden-amqp is currently 1.0.0-rc.1 (pre-release). The public API of the annotation, properties, and SPI implementation is stable; the JSON wire schema is versioned via the flowwarden-schema-version AMQP header so any breaking change is detectable downstream.

Next steps

Quickstart

Add flowwarden-amqp to your project in 5 minutes.

Configuration

Properties reference, wire format, per-stream overrides, confirm-mode trade-offs.

@DeadLetterQueue annotation

The user-facing annotation this backend handles failed events for.

DlqStore SPI

The contract AmqpDlqStore implements.

Source on GitHub

Browse the flowwarden-amqp source, issues, and releases.