DNS 순간 장애가 WebSocket을 종일 죽인 이유: 자동 복구 경로가 없었다
새벽 5시 DNS 순간 장애로 KIS WebSocket이 재연결 5회를 소진하고 영구 차단됐다. DNS가 복구된 후에도 WebSocket은 살아나지 않았다. 자동 복구 경로가 설계에 없었기 때문이다.
새벽 5시 DNS 순간 장애로 KIS WebSocket이 재연결 5회를 소진하고 영구 차단됐다. DNS가 복구된 후에도 WebSocket은 살아나지 않았다. 자동 복구 경로가 설계에 없었기 때문이다.
매도 주문 API가 성공 응답을 반환했다. 그런데 실제 체결이 되지 않았고, 시스템은 이미 체결로 기록했다. KIS API 응답과 실제 체결 사이의 간극, 그리고 이를 방어하는 KIS-truth 재검증 패턴을 정리했다.
KIS API 클라이언트에 connect timeout을 60초로 설정했더니, 연결이 느려지는 순간 요청이 수십 개 쌓였다. 타임아웃을 길게 잡을수록 안전하다는 착각이 만든 사고다.