Reliable message routing with Spring AMQP
Day 1
RabbitMQ Architecture & Exchange Patterns
- AMQP model: producers, exchanges, queues, bindings, consumers
- Exchange types: direct, fanout, topic, headers — routing key behavior
- Queue properties: durable, exclusive, auto-delete, arguments
- Message acknowledgment: auto-ack vs manual ack — when each is safe
- Dead Letter Exchange (DLX): handling rejected and expired messages
- Message TTL and queue TTL
- Priority queues
- Spring AMQP: RabbitTemplate for publishing, @RabbitListener for consuming
- Queue and exchange declaration with @Bean and RabbitAdmin
- Serialization: Jackson2JsonMessageConverter, custom message converters
Day 2
Reliability, Operations & Production Patterns
- Publisher confirms: mandatory flag, confirms mode, return callback
- Consumer prefetch: QoS and parallelism tuning
- Retry with Spring Retry: @Retryable, ExponentialBackOffPolicy
- Poison message handling: republish to DLX after N retries
- RabbitMQ Management API: monitoring queues, consumers, message rates
- Shovel and Federation plugins for cross-cluster message routing
- RabbitMQ clustering: mirrored queues vs quorum queues
- Testing with Testcontainers RabbitMQ
- Comparing RabbitMQ vs Kafka: push vs pull, ordering guarantees, message retention
What your team walks away with
Developers who understand RabbitMQ's routing model deeply enough to choose the right topology for each use case — and operate it reliably in production.
- Design RabbitMQ exchange and queue topologies for task queues, pub/sub, and routing patterns
- Implement reliable message processing with manual acknowledgment and dead letter handling
- Configure publisher confirms and consumer prefetch for throughput and reliability trade-offs
- Monitor and operate RabbitMQ clusters with the management API
Book the RabbitMQ training
Available standalone or combined with Apache Kafka for a complete message broker comparison.
Get in touch