Kafka vs RabbitMQ
Messaging.
When Kafka wins
High-throughput streaming. Millions of events per second; partition-based scaling.
Event sourcing and replay. Topics retain history; consumers replay from any offset.
Best for: log aggregation, event-driven architectures, stream processing pipelines.
When RabbitMQ wins
Complex routing. Topic exchanges, headers, fanouts. RabbitMQ's routing is more flexible.
Lower throughput, simpler ops. Hundreds of thousands of messages per second is plenty for most apps.
Best for: traditional pub-sub, RPC, work queues.
Operational complexity
Kafka: ZooKeeper or KRaft. Cluster management non-trivial.
RabbitMQ: Erlang cluster. Simpler to operate at modest scale.
Managed: AWS MSK, Confluent Cloud for Kafka. CloudAMQP for RabbitMQ.
Pick by use case
Streaming or event sourcing: Kafka.
Pub-sub with rich routing: RabbitMQ.
Don't switch existing systems just to standardise. Migration cost rarely pays.