RateLimiter 한도 초과 시 대기 vs 즉시 실패 선택

상태

승인

후보군

방안설명
즉시 실패 (timeout-duration: 0ms)한도 초과 시 대기 없이 즉시 RequestNotPermitted throw
큐잉 대기한도 슬롯이 생길 때까지 지정 시간만큼 대기 후 허용

결정

timeout-duration: 0ms (즉시 실패)

결정 이유

  • 시세 조회·알림 평가는 실시간성이 핵심이어서 1초 대기 후 응답보다 즉시 실패가 더 안전
  • 큐잉은 메모리 pressure와 예측 불가능한 지연을 유발
  • 즉시 실패 시 상위 레이어에서 graceful degradation을 명확히 결정할 수 있음

검토 대안

방안기각 이유
큐잉 대기메모리 pressure, 예측 불가능한 지연, 실시간성 요구사항에 부합하지 않음

트레이드 오프

  • 득: 실시간성 보장, 메모리 안정성, 상위 레이어 제어권 명확
  • 실: 한도 초과 요청은 즉시 실패해 재시도 책임이 호출자에게 이전됨