WEBBOOK CHAPTER

실패를 전제로 설계하는 분산시스템: 14장. 실패를 정상 상태로 모델링한다

14장. 실패를 정상 상태로 모델링한다

외부 결제사가 느리면 hard dependency인지 soft dependency인지 결정한다. 예약 자체를 받을 수 있다면 payment_pending으로 제한 운영할 수 있다. 그렇지 않다면 빠르게 거절하고 중복 없는 재시도 방법을 안내한다. fallback이 잘못된 확정을 만들면 가용성보다 위해가 크다.

circuit breaker는 장애를 고치지 않는다. 연쇄 호출을 줄이고 회복 시험을 제어할 뿐이다. breaker 상태, half-open 요청 수, 수동 override와 관측을 설계한다. timeout·retry·breaker·queue가 겹쳐 실제 최악 시간이 어떻게 되는지 계산한다.