Dead Letter Queue: จัดการงานที่ทำไม่สำเร็จ ไม่ให้หายเงียบ

ในระบบที่ใช้คิวงาน บางงานทำไม่สำเร็จซ้ำ ๆ ถ้าปล่อยทิ้ง งานสำคัญอาจหายเงียบ Dead Letter Queue คือที่พักของงานที่พลาด เพื่อให้ตรวจสอบและกู้คืนได้ ไม่ใช่หายไปโดยไม่มีใครรู้
ในระบบที่ใช้คิวงานเพื่อทำงานเบื้องหลัง เช่น ส่งอีเมล ออกใบเสร็จ หรือซิงค์ข้อมูล บางงานอาจทำไม่สำเร็จ เช่น ข้อมูลผิดรูปแบบ หรือปลายทางล่ม ถ้าระบบแค่ลองใหม่ไปเรื่อย ๆ แล้วสุดท้ายทิ้ง งานสำคัญอาจหายไปโดยไม่มีใครรู้ Dead Letter Queue หรือ DLQ คือคิวพิเศษที่รับงานซึ่งทำไม่สำเร็จหลังจากลองครบตามกำหนด เพื่อพักไว้ให้คนหรือระบบตรวจสอบและจัดการต่อ แทนที่จะหายเงียบ
ทำไมการหายเงียบถึงอันตราย
งานที่หายเงียบเป็นปัญหาที่ร้ายเพราะไม่มีใครรู้ว่ามันเกิด เช่น ใบเสร็จที่ไม่เคยออก หรือคำสั่งซื้อที่ไม่เคยถูกประมวลผล กว่าจะรู้ก็ตอนลูกค้าทวงหรือบัญชีไม่ตรง DLQ ทำให้ความล้มเหลวเหล่านี้ปรากฏตัว มีที่อยู่ที่ตรวจได้ และมักตั้งการแจ้งเตือนเมื่อมีงานตกลงไปใน DLQ เพื่อให้ทีมรู้และแก้ก่อนกลายเป็นปัญหาใหญ่
- ให้งานที่พลาดมีที่อยู่ ไม่ใช่หายไปเฉย ๆ
- ตั้งการแจ้งเตือนเมื่อมีงานตกลง DLQ เพื่อรู้ปัญหาเร็ว
- ตรวจสาเหตุและกู้คืนหรือประมวลผลงานเหล่านั้นใหม่ได้
Dead Letter Queue เป็นรายละเอียดเล็ก ๆ ที่สร้างความต่างใหญ่ในความน่าเชื่อถือของระบบ เพราะมันยอมรับว่าบางงานจะพลาดเป็นเรื่องปกติ แล้วออกแบบให้ความพลาดนั้นถูกจับและจัดการได้ สำหรับธุรกิจที่พึ่งงานเบื้องหลังอย่างการออกเอกสารหรือการซิงค์ข้อมูล การมี DLQ คือความต่างระหว่างปัญหาที่รู้และแก้ทัน กับปัญหาที่โผล่มาตอนที่สายเกินไปแล้ว
บริการที่เกี่ยวข้อง
รับพัฒนาเว็บแอปพลิเคชัน
สร้างเว็บแอปที่รองรับการเติบโตและเชื่อมกับระบบอื่นได้
WhaleScope
ดูโครงสร้างตลาดของทุกหมวดธุรกิจไทย บน WhaleScope
รายชื่อบริษัท ผู้เล่นรายใหญ่ และอัตราคงอยู่ของแต่ละหมวด — จากข้อมูลจดทะเบียน 2 ล้านนิติบุคคล
อ่านต่อ

Message Queue: ทำไมระบบใหญ่ถึงใช้คิวแทนการเรียกตรง
เมื่อระบบ A เรียกระบบ B ตรง ๆ ถ้า B ล่มหรือช้า A ก็พังตาม Message Queue คั่นกลางด้วยคิวงาน ทำให้ระบบทนทานขึ้น รับโหลดพุ่งได้ และแยกส่วนกันทำงานโดยไม่ล้มพร้อมกัน

Outbox Pattern: แจ้งข่าวระบบอื่นให้ครบทุกครั้ง ไม่มีหลุดหาย
บันทึกออเดอร์สำเร็จแต่ข้อความแจ้งระบบคลังหายไป สต๊อกก็ไม่ถูกตัด ปัญหาเขียนสองที่พร้อมกันนี้เจอบ่อยกว่าที่คิด Outbox Pattern แก้ด้วยการฝากข้อความไว้ในฐานข้อมูลเดียวกัน แล้วค่อยทยอยส่งให้ถึงแน่นอน

Circuit Breaker: หยุดความล้มเหลวไม่ให้ลามทั้งระบบ
เมื่อบริการหนึ่งช้าหรือล่ม ระบบที่เรียกมันอาจค้างรอจนทรัพยากรหมด แล้วลามพังต่อกันเป็นโดมิโน Circuit Breaker คือกลไกตัดวงจรชั่วคราว เพื่อให้ส่วนที่ดียังทำงานได้ และให้ส่วนที่พังได้ฟื้น

Load Balancer คืออะไร: กระจายงานให้ระบบรับโหลดได้มากขึ้นและไม่ล่มง่าย
เมื่อเครื่องเดียวรับไม่ไหว คำตอบไม่ใช่ซื้อเครื่องใหญ่ขึ้นเสมอไป แต่คือกระจายงานไปหลายเครื่องด้วย Load Balancer ซึ่งช่วยทั้งเรื่องรองรับคนมากขึ้นและทนต่อการที่เครื่องหนึ่งล่ม
