10장 실패 큐와 보상 작업으로 복구한다
자동화가 여러 시스템을 바꾸면 중간 실패가 생긴다. 캘린더는 만들었는데 메일 초안은 실패할 수 있다. 데이터베이스 트랜잭션 하나로 외부 시스템을 함께 되돌릴 수 없다. 각 단계의 완료 상태와 보상 작업을 설계한다.
예를 들어 일정 예약 실패는 재시도할 수 있다. 일정은 성공했지만 이후 의뢰가 취소되면 해당 외부 이벤트 ID로 취소한다. 메일이 이미 발송됐다면 “되돌림”이 아니라 정정 메일과 사건 보고가 필요하다. 되돌릴 수 없는 행동일수록 승인과 미리보기를 앞에 둔다.
실패 큐에는 작업 ID, 단계, 분류된 원인, 마지막 시도, 안전하게 재시도 가능한지, 관련 영수증, 운영자 행동을 저장한다. “재시도” 버튼을 누르기 전에 현재 산출물과 승인이 아직 유효한지 다시 확인한다.