결제 saga가 보상 트랜잭션을 두 번 실행했다: state machine으로 되돌린 이유 2026년 5월 16일·7 분 주문과 결제를 나눈 뒤 보상 트랜잭션이 중복 실행되며 환불과 재고 복구가 엇갈렸다. saga를 이벤트 흐름이 아니라 상태 기계와 재시도 원장으로 관리한 기준을 정리한다.
AI agent가 같은 tool을 두 번 불렀다: 재시도보다 먼저 idempotency ledger가 필요했다 2026년 5월 14일·6 분 Tool-calling agent가 네트워크 실패와 모델 재시도로 같은 외부 작업을 반복 실행한 사례를 바탕으로 idempotency key, side-effect ledger, retry gate를 어떻게 분리했는지 정리한다.
Speculative decoding을 켰는데 p99가 더 나빠진 이유: acceptance rate부터 봤다 2026년 5월 12일·5 분 LLM 서빙에서 speculative decoding을 켰다가 p99가 악화된 사례를 바탕으로 draft 모델, verifier 비용, acceptance rate를 어떻게 rollout gate로 삼았는지 정리한다.
SLO alert가 너무 늦고 너무 시끄러웠다: burn rate window를 계약으로 둔 이유 2026년 5월 12일·7 분 가용성 SLO를 Prometheus alert로 옮기면서 단일 error rate 조건이 놓친 장애와 과한 호출을 multi-window burn rate 계약으로 줄인 운영 기록.
Flaky test를 격리했더니 main이 더 느려졌다: quarantine queue에 만료 시간을 둔 이유 2026년 5월 11일·7 분 반복 실패 테스트를 quarantine으로 치웠다가 CI 신뢰도와 처리 시간이 함께 나빠진 뒤, TTL과 owner budget으로 quarantine을 운영 큐로 바꾼 사례를 정리한다.
한 고객의 bulk export가 전체 worker를 멈췄다: DRR로 tenant fair queue를 만든 이유 2026년 5월 10일·5 분 FIFO worker queue에서 한 테넌트의 대량 작업이 전체 p99를 끌어올린 장애를 Deficit Round Robin과 비용 예산으로 풀어낸 기록입니다.
컨텍스트 압축 뒤에 테스트는 통과했는데 요구사항이 사라진 이유 2026년 5월 10일·6 분 AI 보조 코딩 세션이 길어지면서 컨텍스트 요약이 요구사항을 잃어버린 사고를 decision ledger, 검증 체크포인트, 핸드오프 계약으로 줄인 운영 기록입니다.
배포 한 번에 WebSocket이 몰려왔다: reconnect storm을 session resume 계약으로 막은 이유 2026년 5월 9일·5 분 무중단 배포 뒤 WebSocket 클라이언트가 동시에 재접속하면서 presence와 fanout 계층이 흔들린 사건을 resume token, backoff jitter, drain budget으로 고친 기록입니다.
CI secret을 없앴는데 배포가 멈췄다: OIDC subject claim을 계약으로 관리한 이유 2026년 5월 9일·5 분 GitHub Actions OIDC로 장기 배포 키를 없앤 뒤, subject claim과 trust policy를 운영 계약으로 관리하게 된 사례를 정리한다.
Online backfill을 켰더니 replica lag가 터졌다: 배치 크기보다 먼저 정한 것 2026년 5월 8일·5 분 대규모 nullable column backfill이 primary CPU가 아니라 WAL replay와 read replica 지연을 먼저 터뜨린 사건을 lag budget, worker lease, kill switch로 고친 기록입니다.