หลายคนอาจเคยใช้ RabbitMQ, Redis pub/sub หรือแม้แต่ HTTP API เรียกกันไปมา ซึ่งก็ใช้งานได้ แต่พอระบบโตขึ้นเรื่อย ๆ มันจะเริ่ม “พันกันยุ่งเหยิง” แบบ spaghetti จนแก้โค้ดทีต้องไล่เรียก API เป็นทอด ๆ

Kafka เข้ามาแก้ปัญหานี้แบบเท่ ๆ เพราะมันคือ Event Streaming Platform ที่ออกแบบมาเพื่อ สื่อสารข้อมูลจำนวนมากแบบต่อเนื่องและ real-time โดยเฉพาะสำหรับระบบ Microservices

1. Microservices ไม่ต้องรู้จักกันโดยตรง (Decoupling จริงจัง)

สมมุติว่าเรามี service สั่งซื้อสินค้า (Order Service) และ service แจ้งเตือนลูกค้า (Notification Service) ถ้าใช้ HTTP หรือ REST API แบบเดิม เราต้องให้ Order เรียก Notification โดยตรง ซึ่งแปลว่า service A ต้องรู้ endpoint ของ service B แต่ถ้าใช้ Kafka แค่ให้ Order ยิง event ว่า “order_created” แล้ว Notification ก็ไป subscribe เอง → จบ! ไม่ต้องรู้จักกันเลย แก้หรือเปลี่ยนอะไรฝั่งไหน ก็ไม่ต้องกลัวกระทบกัน

2. สเกลแยกกันได้สบาย ๆ

Kafka รองรับการทำงานแบบ consumer group ซึ่งช่วยให้เราสามารถสเกล service ใด service หนึ่งออกมาเพิ่มได้ตามต้องการ เช่น สั่งซื้อเยอะ ก็สเกล Order Service ออกมาเพิ่มโดยไม่กระทบ Notification หรือ Billing Kafka จะคอยจัดการ partition และ balancing ให้แบบเนียน ๆ

3. ล่มไม่กลัว เพราะ Kafka เก็บ event ให้

ถ้า Notification ล่ม ขณะที่มี order เข้ามา Kafka จะเก็บ event ไว้ใน queue ต่อ พอระบบกลับมา ก็จะดึง event มาประมวลผลต่อได้ทันที ไม่มีข้อมูลหาย เรียกว่า resilient แบบโหด ๆ

4. อยากเพิ่ม feature อะไรใหม่ ง่ายมาก!

สมมุติเราอยากเพิ่มระบบ ส่ง SMS หรือ เก็บข้อมูลเข้า Data Warehouse แค่เขียน service ใหม่ไป subscribe กับ topic เดิม ก็ทำงานได้เลย ไม่ต้องไปยุ่งกับ service เดิมเลยแม้แต่นิดเดียว Kafka ช่วยให้ระบบ “ต่อยอด” ได้ง่ายจริง ๆ

5. ใช้เป็น log ย้อนหลังได้ด้วยนะ

Kafka เก็บข้อมูลแบบ log-based คือไม่ได้ลบทิ้งทันที
เราสามารถใช้ข้อมูลเหล่านี้:

  • ทำ audit log ย้อนหลัง
  • สร้างระบบใหม่โดย replay event เก่า
  • Train AI จาก event ที่เกิดขึ้นในระบบจริง

แค่มี Kafka อยู่ตรงกลาง ทุกอย่างดูง่ายขึ้นเยอะ

6. ประหยัดการเรียก API ไปได้เยอะ

ระบบที่เคยเขียนแบบ service A → B → C → D จะมีปัญหาเวลา chain ยาว ๆ
เช่น ถ้า B พัง → ทั้ง flow หยุดหมด แต่ถ้าใช้ Kafka → A แค่ publish, แล้ว B, C, D ค่อย ๆ process ตามลำดับ ใครพร้อมก่อนก็ทำ ไม่ต้องรอกัน และแยกความรับผิดชอบได้จริง