RabbitMQ และ Kafka ต่างก็เป็นระบบส่งข้อความ แต่มีความแตกต่างกันในเชิงพื้นฐาน — RabbitMQ เป็น message broker แบบดั้งเดิม (queue, flexible routing, ข้อความถูกบริโภคและลบออก) ขณะที่ Kafka เป็น distributed event log (ถูกเก็บไว้, เล่นซ้ำได้, streaming ที่ throughput สูง) ทั้งสองเหมาะกับ use case ที่แตกต่างกัน
ความแตกต่างพื้นฐาน
RABBITMQ → a message BROKER (smart broker, simple consumer):
→ messages ROUTED via exchanges, CONSUMED and removed (transient)
→ rich ROUTING (exchange types); per-message handling; push-based
→ for: task queues, complex routing, request/reply, traditional messaging
KAFKA → a distributed event LOG (simple broker, smart consumer):
→ events RETAINED (not removed on consume), replayable; partition-based
→ very high throughput; multiple consumers read the same data; pull-based
→ for: event streaming, high-volume data, pipelines, retention/replay
