전체 Rollback
한 항목 실패가 전체 command 실패라면 savepoint를 쓰지 않는다.
Savepoint를 기술 편의로 추가하지 않고 사용자에게 부분 결과를 어떻게 보일지와 재시도 단위를 먼저 결정한다.
한 항목 실패가 전체 command 실패라면 savepoint를 쓰지 않는다.
row별 성공·실패를 결과에 노출하고 각 구간을 되돌린다.
되돌릴 수 없는 외부 효과는 outbox·worker로 이동한다.
부분 반영 뒤 재실행해도 중복되지 않는 식별자를 둔다.
핵심: 부분 rollback은 데이터베이스 기능이 아니라 부분 성공을 허용하는 제품 계약의 구현이다.