31장. Webhook 장애 종합 실습
서명 검증 전 JSON을 parse/re-serialize해 raw bytes가 변하는 결함을 주입한다. signature failure가 증가하면 proxy의 body decompression, framework body parser, charset, newline까지 본다. 공급자 문서의 signed components와 timestamp 단위를 확인한다.
동일 event ID를 5번 동시 전송한다. inbox unique constraint와 side-effect receipt로 이메일·환불이 한 번만 실행되어야 한다. 응답이 끊긴 경우 provider retry가 와도 이전 receipt를 반환한다.
다음에 paid(v3)가 authorized(v2)보다 먼저 도착하게 한다. 상태 버전이 뒤로 가지 않게 하고 missing event를 provider lookup으로 reconcile한다. 순서 보장을 기대하는 경우 partition key·queue ordering을 명시한다.
장애 종료 조건은 signature failure 0, duplicate side effect 0, inbox backlog age 정상, provider reconciliation 차이 0이다. payload 원문은 민감 정보 보존·파기 정책을 따른다.