피드로 돌아가기
Dev.toBackend
원문 읽기
Redis 기반 지연 큐와 Circuit Breaker 도입을 통한 Webhook 신뢰성 99.9% 달성
Building a Reliable Webhook Delivery System: What Actually Broke and How I Fixed It
AI 요약
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 서명 및 상수 시간 비교 함수 적용 여부 점검