ซิงก์ออเดอร์จากร้านค้าออนไลน์เข้าระบบบัญชี แบบไม่สร้างเอกสารซ้ำ
Order sync into an accounting system, without duplicate documents
โมดูลรับ webhook ออเดอร์ แล้วสร้างเอกสารในระบบบัญชีผ่าน REST API โดยกันการสร้างซ้ำ, retry เมื่อปลายทางล่ม และเก็บงานที่ล้มเหลวไว้ให้ replay ได้

รายละเอียด
ร้านค้าออนไลน์ส่ง webhook ซ้ำเป็นเรื่องปกติ ถ้าแฮชจาก body ดิบ ฟิลด์อย่างรหัสการส่งและเวลาส่งจะเปลี่ยนทุกครั้ง ทำให้ได้คีย์ใหม่และเก็บเงินลูกค้าซ้ำ โมดูลนี้จึงตัดฟิลด์ที่เปลี่ยนตามการส่งออกก่อนสร้างคีย์
ช่วงอันตรายคือระหว่าง ‘ส่งคำขอแล้ว’ กับ ‘บันทึกคำตอบแล้ว’ การจองคีย์ก่อนยิงทำให้ retry ใช้เลขเอกสารเดิม ไม่เผาเลขที่สอง เลขเอกสารถูกจ่ายแบบไม่มีช่องว่างและไม่ชนกันด้วย SQLite BEGIN IMMEDIATE
แต่ถูก clamp ไว้ ไม่ให้ header ที่ผิดปกติจอด worker ทิ้งไว้เป็นชั่วโมง ส่วน backoff ปกติใช้ full jitter เพื่อไม่ให้เครื่องทั้งฟลีตฟื้นจากเหตุขัดข้องพร้อมกันแล้วชนกันซ้ำ
dead-letter แบบ JSONL เก็บเหตุผล, HTTP status, จำนวนครั้งที่ลอง, คีย์กันซ้ำ และ payload เดิม การ replay จึงเป็นคำสั่งบรรทัดเดียว และ replay ซ้ำก็ไม่สร้างเอกสารซ้ำ