피드로 돌아가기
Hardening Distributed Systems: Retries, Circuit Breakers & Observability.
Dev.toDev.to
Backend

중앙 집중식 Retry Policy 및 Circuit Breaker 도입을 통한 분산 시스템 안정성 확보

Hardening Distributed Systems: Retries, Circuit Breakers & Observability.

Rahim Ranxx2026년 4월 12일12intermediate

Context

STAC, SentinelHub 등 외부 API 의존성이 높은 NDVI 파이프라인에서 429 Rate Limit 및 502 Transient Error로 인한 시스템 불안정성 발생. 각 모듈에 산재한 일관성 없는 Retry 로직으로 인해 디버깅 효율 저하 및 불필요한 Celery 리소스 낭비가 지속된 구조적 한계 존재.

Technical Solution

  • HTTP 상태 코드별 Retry 가능 여부를 정의한 Canonical Truth Table 기반의 중앙 집중식 분류 체계 구축
  • 모든 외부 API 에러를 UpstreamFailureError로 통합하여 일관된 속성과 분류 로직을 보장하는 Unified Exception Hierarchy 설계
  • Retry-After 헤더 값을 우선 반영하여 Upstream 서버의 부하를 조절하는 지능형 Retry Decision 로직 구현
  • failure_count 및 last_failure_time 기반의 Process-local Circuit Breaker를 도입하여 장애 전파 차단
  • Prometheus Gauge를 통한 상태 전이 모니터링으로 시스템 가시성 확보 및 운영 효율성 증대

1. 모든 외부 API 응답에 대해 Retryable 여부를 결정하는 단일 진실 공급원(Single Source of Truth)을 정의했는가

2. 429 Too Many Requests 응답 시 서버가 제시한 Retry-After 헤더를 준수하는 로직이 포함되었는가

3. 무분별한 재시도로 인한 Retry Storm을 방지하기 위한 Circuit Breaker 또는 Exponential Backoff가 적용되었는가

4. 에러 발생 시 단순 로그 기록을 넘어 Prometheus 등 모니터링 도구로 상태 전이가 추적 가능한가

원문 읽기