개요
- 이전 과정을 통해 트랜잭션에서 외부 API를 분리하였다.
- 그러면서 하나의 비즈니스 로직이 여러 부분 트랜잭션으로 분리되었다.
- 만약 서버 크래시가 발생한다면, 저장된 트랜잭션 간 불일치를 해결할 필요가 있다.
기존 방식

- 주문 및 결제 관련 플로우는 위와 같다.
- 여기서 만약 아래과 같이 서버 크래시가 난다면 DB 반영이 되지 않는다.

- 즉, 사용자 입장에서는 자신의 돈이 출금되었는데, 어디를 가도 자신이 구매한 좌석이 보이지 않는다.
- 또한 Order와 OrderItem, Payment는 여전히 생성 상태(PENDING)으로 남아있다.
해결 방법
실제 반영 상태 조회
- Client 라이브러리에 설정된 타임아웃이나 네트워크적 오류로 인해 실제로는 Kakaopay에 반영이 되었는데, 실패했다고 응답을 받을 수 있다.