Patterns & Alternatives
จาก feature สู่การตัดสินใจ
หัวข้อที่มีชื่อว่า “จาก feature สู่การตัดสินใจ”ตอนนี้คุณรู้จักกลไกทั้งหมดแล้ว — exchange, queue, acknowledgement, confirm, dead-letter exchange โมดูลสุดท้ายนี้ว่าด้วย การตัดสินใจ: pattern ไหนเหมาะกับปัญหาแบบไหน, เมื่อไรที่ RabbitMQ เป็นเครื่องมือที่ผิด และจะประกอบทุกอย่างที่เรียนมาให้เป็น consumer ที่เชื่อถือได้บน production ได้อย่างไร
โมดูลนี้ครอบคลุมอะไรบ้าง
หัวข้อที่มีชื่อว่า “โมดูลนี้ครอบคลุมอะไรบ้าง”| บทเรียน | สิ่งที่คุณจะได้เรียน |
|---|---|
| Messaging patterns | work queue, pub/sub, routing, RPC และ event-driven choreography — และเมื่อไรควรใช้แต่ละแบบ |
| RabbitMQ vs Kafka | queue semantics เทียบกับ log ที่ replay ได้ และจะเลือกอย่างไร |
| RabbitMQ Streams | log แบบ append-only ที่ replay ได้ ซึ่ง build มาในตัว RabbitMQ |
| Designing a resilient consumer | consumer ระดับ production ที่รวมทุกบทเรียนเรื่อง reliability เข้าด้วยกัน |
แผนที่ของสิ่งที่คุณสร้างมาถึงจุดนี้
หัวข้อที่มีชื่อว่า “แผนที่ของสิ่งที่คุณสร้างมาถึงจุดนี้”ทุก pattern ในคอร์สนี้คือรูปทรงที่ต่างกันของ flow แบบ publish-route-consume เดียวกัน:
flowchart TB ev["event หรือ task หนึ่งตัว"] --> q1["Work queue (worker ตัวเดียวจากหลายตัวทำ)"] ev --> q2["Pub/sub (subscriber ทุกตัวได้ copy)"] ev --> q3["Routing/topic (เฉพาะ consumer ที่ match)"] ev --> q4["RPC (ส่ง request แล้วรอ reply)"]
ทักษะที่ต้องมีไม่ใช่การท่องจำแต่ละแบบ — แต่คือการมองออกว่า requirement ใหม่ที่เข้ามาเป็นรูปทรงไหน การมองออกแบบนี้คือสิ่งที่โมดูลที่เหลือจะสร้างให้