WEBBOOK CHAPTER

외부 인터페이스 엔지니어링: 39장. Webhook Inbox를 원장으로 만든다

39장. Webhook Inbox를 원장으로 만든다

signature 검증에 raw body가 필요하면 JSON parse 전 원문 bytes, timestamp, replay window와 endpoint secret version을 확인한다. event id/provider/account로 unique한 Inbox row를 먼저 저장하고 빠르게 2xx를 반환한다. worker가 domain effect를 처리하며 같은 event 재전송은 기존 결과를 돌려준다.


insert into webhook_inbox(provider,event_id,payload_sha256,state)
values ($1,$2,$3,'RECEIVED') on conflict do nothing;

순서가 뒤바뀌거나 event가 누락될 수 있으므로 현재 provider 상태 조회와 version을 사용한다. poison event는 DLQ와 승인 replay를 거친다.