일괄 조치의 최종 결과는 대상별 실패와 미해결 상태를 보존해야 한다
여러 대상을 처리하는 작업의 최종 결과는 대상별 결과와 미해결 상태에서 만들어야 한다. 마지막 호출의 반환값이나 전체 함수의 정상 종료가 앞선 실패를 덮게 해서는 안 된다.
집계와 계속 진행 정책을 구분한다
대상별로 성공, 확인된 실패, 적용 여부 불명, 미시도를 구분하고 필요한 근거를 남긴다. 부분 적용이나 결과 불명을 변경 없음으로 축소하지 않는다. 재확인 뒤 결과가 바뀌면 이전 시도와 새 판정을 구분할 수 있어야 한다.
독립적인 대상이라면 한 대상의 실패 뒤 나머지를 계속 처리할 수 있다. 반대로 전체에 필요한 공통 전제나 의존성이 깨졌다면 중단이 필요할 수 있다. 이 선택은 결과 집계와 별도의 정책이다. 멀티 어카운트 NACL 자동화의 실행 정합성 - 우아한형제들의 계정별 처리와 실패 보고는 이 두 책임을 구분하는 사례다.
재시도는 실패 목록만으로 결정하지 않는다
실패한 대상에서 이미 외부 효과가 발생했을 수 있다. 재조회, 안전한 재실행, 보상, 수동 개입 중 무엇을 허용하는지는 실제 상태와 계약에 따라 정한다. Lambda 비동기 오류 처리는 오류 종류별 재시도와 중복 전달 가능성을 보여준다. 전달이 다시 이루어진다는 사실은 업무 조치의 반복이 안전하다는 증거가 아니다.
최종 보고를 읽는 사람이 미해결 대상, 마지막 확인 시점과 다음 처리 책임을 찾을 수 있는지 확인한다. 이 노트는 모든 부분 실패의 자동 복구나 모든 대상의 동시 완료를 요구하지 않는다.