웹훅은 네트워크가 잠깐 끊기거나 수신 서버가 늦게 응답하면 같은 이벤트를 여러 번 보냅니다. 재시도는 안정성을 높이지만 결제·재고·알림 작업이 중복 실행되면 더 큰 문제가 됩니다.
재시도와 중복은 한 세트로 설계한다
수신 API는 먼저 이벤트 ID 또는 멱등 키를 확인하고, 이미 처리한 키라면 같은 성공 응답을 즉시 반환해야 합니다. 처리 중인 키는 잠금으로 보호하고 실패한 작업만 다시 시도합니다.

운영에서 확인할 세 가지
- 키 저장소에 이벤트 상태와 만료 시간을 함께 기록합니다.
- 재시도 횟수와 다음 시각을 정하고 계속 실패하면 DLQ로 보냅니다.
- 원본 이벤트 ID를 로그와 업무 데이터에 남겨 추적 가능하게 만듭니다.
멱등성은 특정 프레임워크 기능이 아니라 데이터 흐름의 약속입니다. 이벤트를 몇 번 받아도 결과가 한 번과 같도록 경계를 먼저 정하면 장애 대응이 빨라집니다.
#웹훅 #Webhook #멱등성 #Idempotency #재시도설계 #이벤트기반아키텍처 #RESTAPI #FastAPI #Python #분산시스템