피드로 돌아가기
800 simultaneous Workers, one cache miss, $40/mo surprise — the Cloudflare coalescing fix
Dev.toDev.to
Infrastructure

Durable Object 기반 Request Coalescing으로 Origin 서버 429 에러 해결

800 simultaneous Workers, one cache miss, $40/mo surprise — the Cloudflare coalescing fix

강해수2026년 6월 29일2advanced

Context

Burst Traffic 상황에서 KV Cache Miss 발생 시 다수의 Worker가 동시에 Origin으로 요청을 보내는 Cache Stampede 현상 발생. KV Write Latency(80ms)와 Origin Fetch(120ms) 간의 시간 차로 인해 동시성 제어 실패 및 Origin 서버 부하 급증.

Technical Solution

  • Request Coalescing 기법 도입을 통한 Origin 요청 횟수 최소화
  • Single-threaded JS 환경인 Durable Object(DO)를 활용한 Race Condition 제거
  • DO 내부 Map 구조에 in-flight Promise를 저장하여 동일 리소스에 대한 중복 요청 방지
  • finally 블록 내 delete 처리를 통한 Fetch 실패 시 Map 오염 및 영구적 요청 거부 방지
  • idFromName(key) 설계를 통해 리소스별 독립적인 DO 인스턴스를 할당하여 글로벌 병목 지점 제거
  • KV Hit 시 즉시 반환하고 Miss 시에만 DO Coalescer로 라우팅하는 효율적 경로 설계

1. 고트래픽 환경의 Cache Miss 시 Stampede 현상 가능성 검토

2. 분산 환경 내 Promise 공유가 불가능할 경우 상태 저장소나 Single-threaded Proxy 도입 고려

3. 공유 리소스 관리 시 실패 케이스에 대한 Cleanup 로직(finally 등) 필수 적용

4. 단일 인스턴스 병목을 피하기 위해 리소스 키 기반의 샤딩(Sharding) 전략 적용

원문 읽기