topics / async-messaging
RabbitMQ vs Kafka
Smart broker vs. dumb log — not a benchmark, a difference in what each one actually does at runtime. Watch the same published event get pushed to a worker and deleted on ack on one side, while it sits in a log getting pulled by independent consumer groups on the other. Then use Match to score a workload's traits, or Study for the full scenario-by-scenario reasoning.
Recommendation
RabbitMQ
RabbitMQ4.5
Kafka0.5
Points rank which traits matter most for this workload — not a precise formula.
- RabbitMQ: Moderate volume doesn't need a partitioned log to keep up. A single well-configured RabbitMQ queue (or a handful, sharded manually) handles this comfortably, with a much simpler operational footprint than running a Kafka cluster.
- RabbitMQ: This is a worker pool pulling discrete jobs off one backlog. RabbitMQ's competing-consumer queue — per-message ack, prefetch limits, priority queues — is purpose-built for exactly this. Kafka caps your parallelism at the partition count and only gives you offset commits, not a per-message ack.
Load a real scenario
Or describe your own workload
Do consumers ever need to replay history?
How does a message decide where it goes?
Traffic volume
Ordering requirement
Who's on the other end?
Once a message is processed, it's...