429 응답의 CircuitBreaker 실패 기록 여부 선택

상태

승인

후보군

방안설명
429를 failure로 기록TossRateLimitExceptionrecord-exceptions 에 등록해 CircuitBreaker 실패 카운트에 포함
429를 success로 기록클라이언트 오류(4xx)로 간주해 CircuitBreaker 실패 카운트 제외

결정

429를 CircuitBreaker failure로 기록TossRateLimitExceptionrecord-exceptions 에 등록

결정 이유

  • 429가 반복된다는 것은 클라이언트 코드에 문제가 있거나 Toss 서비스 제한이 강화됐음을 의미
  • Circuit을 열어 추가 호출을 차단하는 것이 Toss API 서버 부하를 줄이는 올바른 대응
  • 구조: TossRateLimitExceptionrecord-exceptions에 등록하거나 HttpClientErrorException.TooManyRequests를 직접 기록

검토 대안

방안기각 이유
429를 success로 기록429 반복 시에도 Circuit이 열리지 않아 Toss API 서버에 지속적인 부하를 가함

트레이드 오프

  • 득: Toss API 부하 보호, 429 반복 시 자동 차단으로 운영 안정성 향상
  • 실: RateLimiter 임계치 설정이 잘못된 경우 의도치 않게 Circuit이 열릴 수 있음