재고, 주문, 결제 기록은 하나의 성공/실패 단위다
주문 처리에서는 마지막 쓰기까지 성공해야 commit한다. 중간에 실패하면 이미 줄인 재고와 생성한 주문도 함께 rollback한다.
| 실패 지점 | 되돌릴 대상 | 응답 기준 |
|---|---|---|
| 재고 감소 실패 | 주문과 결제 기록을 만들지 않는다. | 품절 또는 수량 부족으로 실패한다. |
| 주문 생성 실패 | 이미 줄인 재고를 rollback한다. | 부분 주문 번호를 노출하지 않는다. |
| 결제 기록 실패 | 재고, 주문, 항목 기록을 모두 되돌린다. | 결제 실패 사유만 매핑한다. |
원칙: 외부 호출은 트랜잭션 밖에 두고, 같은 tx client를 끝까지 전달한다.