smallrye-rabbitmq is the SmallRye Reactive Messaging connector that lets Quarkus applications publish and consume messages through RabbitMQ. RabbitMQ normally uses AMQP 0-9-1, where messages travel through exchanges and queues; AMQP 1.0 requires a separate connector. section 9.7
Reactive Messaging keeps the application-facing model consistent across RabbitMQ, Kafka, and in-memory channels. Applications work with named channels while connector configuration maps those channels to broker resources. section 9.7 section 9.8.2
A typical Quarkus integration proceeds as follows:
- Map incoming channels explicitly when RabbitMQ is not the only connector on the classpath. section 9.8.2
Invoice processing pipeline
A reservation service emits an invoice to the invoices channel. A billing service consumes it, maps incoming JSON to an Invoice, persists the invoice, and forwards it to invoices-requests. A blocking payment processor then simulates payment, updates the invoice, and emits an InvoiceConfirmation. Message metadata and acknowledgement behavior can be preserved while changing the payload. section 9.8.2
Development support can provision a RabbitMQ container and inject connection settings. Asynchronous messages do not automatically trigger Quarkus Dev Mode live reloads, so message-flow changes require a manual restart. section 9.8.2
