피드로 돌아가기
Webhooks Are Broken by Design — So I Built a Fix
Dev.toDev.to
Backend

유실 없는 Webhook 구현을 위한 신뢰성 계층 설계 전략

Webhooks Are Broken by Design — So I Built a Fix

Taras2026년 4월 6일3intermediate

Context

Webhooks의 'Fire and Forget' 방식에 따른 데이터 유실 위험 존재. 수신 서버의 일시적 장애나 네트워크 불안정 시 이벤트 복구 불가. 송신 측의 재시도 전략에 의존하는 구조적 한계 발생.

Technical Solution

  • 수신 즉시 200 OK 응답 후 Raw Payload를 저장하는 수신-처리 분리 설계
  • FastAPI 기반의 비동기 Ingestion 레이어를 통한 고속 요청 처리
  • Celery와 Redis 조합의 태스크 큐를 활용한 비동기 전달 체계 구축
  • 30초부터 24시간까지 단계적으로 간격을 늘리는 Exponential Backoff 재시도 로직 적용
  • PostgreSQL을 활용한 모든 이벤트의 수신 상태 및 전달 이력 저장
  • 실패한 이벤트의 상태 확인 및 수동 재시도를 지원하는 모니터링 대시보드 제공

Key Takeaway

외부 시스템의 전달 보장 수준을 신뢰하지 않고 제어 가능한 중간 신뢰성 계층을 구축하여 시스템의 결정론적 동작을 확보하는 설계 원칙.


외부 Webhook 연동 시 즉시 처리 대신 '수신 전용 큐'를 먼저 배치하여 데이터 유실 가능성을 차단할 것

원문 읽기