Event Sourcing: overcoming the Monolith
engineering.talkdesk.comAmazing content! What issues have you found in using RabbitMQ as a message broker comparing to some other alternatives like Kafka?
RabbitMQ is not a storage system. Its primary goal is giving you flexibility in terms of routing messages between producers and consumers so when you have slow consumers and queues filling up performance degrades pretty quickly once you start hitting disk IO for swap or queue persistence. Eventually a single slow consumer or a badly setup queue can stop a whole cluster once it runs out of disk space. Kafka is the opposite, very inflexible in terms of routing but built for storage so slow consumers don't bog down everything. We're using Rabbit for our realtime/online stuff taking advantage of the flexibility around setting up consumers for sets of messages and we're introducing kafka for non realtime consumers.