RateLimiter 한도 초과 시 대기 vs 즉시 실패 선택
상태
승인
후보군
| 방안 | 설명 |
|---|---|
즉시 실패 (timeout-duration: 0ms) | 한도 초과 시 대기 없이 즉시 RequestNotPermitted throw |
| 큐잉 대기 | 한도 슬롯이 생길 때까지 지정 시간만큼 대기 후 허용 |
결정
timeout-duration: 0ms (즉시 실패)
결정 이유
- 시세 조회·알림 평가는 실시간성이 핵심이어서 1초 대기 후 응답보다 즉시 실패가 더 안전
- 큐잉은 메모리 pressure와 예측 불가능한 지연을 유발
- 즉시 실패 시 상위 레이어에서 graceful degradation을 명확히 결정할 수 있음
검토 대안
| 방안 | 기각 이유 |
|---|---|
| 큐잉 대기 | 메모리 pressure, 예측 불가능한 지연, 실시간성 요구사항에 부합하지 않음 |
트레이드 오프
- 득: 실시간성 보장, 메모리 안정성, 상위 레이어 제어권 명확
- 실: 한도 초과 요청은 즉시 실패해 재시도 책임이 호출자에게 이전됨