피드로 돌아가기
Building a Reliable Webhook Delivery System: What Actually Broke and How I Fixed It
Dev.toDev.to
Backend

Redis 기반 지연 큐와 Circuit Breaker 도입을 통한 Webhook 신뢰성 99.9% 달성

Building a Reliable Webhook Delivery System: What Actually Broke and How I Fixed It

Mohit Kumar2026년 6월 23일1intermediate

Context

동기식 호출 방식의 처리 지연으로 인한 전체 시스템 병목 발생 및 Worker 장애 시 작업 유실 위험 상존. 구독자 서버 상태에 따른 연쇄적 장애 전파와 데이터 무결성 검증 부재라는 구조적 한계 직면.

Technical Solution

  • 202 Accepted 즉시 응답 및 비동기 전달 구조 설계를 통한 Ingest 단계의 Blocking 제거
  • 30초 주기 Watchdog 프로세스 도입으로 IN_FLIGHT 상태의 Stale Job 재큐잉 처리
  • Redis Sorted Set 기반의 Exponential Backoff(2s~32s) 구현을 통한 구독자 서버 부하 경감
  • 구독별 Circuit Breaker 적용으로 5회 연속 실패 시 상태를 OPEN으로 전환하여 장애 전파 차단
  • HMAC-SHA256 서명 및 hmac.compare_digest 사용으로 Timing Attack 방지 및 Payload 무결성 확보

1. 비동기 처리 시 작업 상태 추적 및 Watchdog 기반의 복구 로직 설계 여부 검토

2. Redis Sorted Set을 활용한 정교한 Delayed Queue 구현 가능성 확인

3. 외부 API 호출 시 Circuit Breaker 도입을 통한 Fault Tolerance 확보

4. Webhook 보안을 위한 HMAC 서명 및 상수 시간 비교 함수 적용 여부 점검

원문 읽기