Webhook เป็นจุดที่ระบบภายนอกเริ่มมีอิทธิพลต่อ state ภายในของเรา จึงต้องถูกออกแบบให้ปลอดภัยและตรวจสอบได้
TL;DR
- Webhook ไม่ใช่แค่ POST endpoint
- ต้องคิดเรื่อง authenticity, replay, duplicate และ ordering
- ระบบที่รับ webhook ต้องมี idempotency
- event boundary ที่ดีช่วยป้องกัน state corruption
Contents
- Webhooks คืออะไร
- ทำไมมันสำคัญ
- องค์ประกอบของ webhook flow
- ความเสี่ยงหลัก
- แนวทางออกแบบ
- Trust layer
- บทลูกที่ควรอ่านต่อ
1. What Is Webhooks
Webhook คือวิธีที่ระบบภายนอกส่ง event มาหาเราเมื่อมีบางอย่างเกิดขึ้น เช่น payment success, new message หรือ workflow state change
2. Why It Matters
ถ้า webhook boundary หลวม ระบบด้านในจะหลวมตาม และอาจเปลี่ยน state ธุรกิจจากข้อมูลที่ยังไม่น่าเชื่อถือ
3. System Breakdown
- raw body handling
- signature verification
- timestamp และ replay protection
- duplicate handling
- idempotent business logic
4. Core Risks
- parse payload ก่อน verify
- เชื่อ frontend หรือ callback เร็วเกินไป
- ไม่มี event log
- process event ซ้ำแล้ว state เพี้ยน
5. Approach
ออกแบบ flow ให้รับข้อมูลดิบ, verify ก่อน, validate schema, กัน duplicate และบันทึก processing result ให้ย้อนดูได้
6. Trust Layer
Webhook ที่เชื่อถือได้ทำให้ระบบ payment, subscription และ integrations ทั้งชุดเชื่อถือได้ตามไปด้วย
7. Solution
ใช้ pillar นี้เป็น hub แล้วเชื่อมไปยังบทลูกเรื่อง webhook verification และ event-driven production patterns