분산 트랜잭션 설계

모놀리식 아키텍처에서 주문 처리 로직을 구현할 때, 각 단계가 성공적으로 완료되어야 전체 주문이 성공적으로 처리됩니다. 그러나 외부 API를 호출하는 경우, 트랜잭션 롤백이 로컬 데이터베이스 트랜잭션과 다르게 처리됩니다. 이를 고려하여 롤백 로직을 정리해보겠습니다.

- 문제 상황

- 해결 방안

  1. 주문 처리의 각 단계가 원자적으로 수행되지 않음:
  2. 롤백 요청 구현 필요:

- 정리된 설명

주문 처리 로직을 모놀리식 아키텍처에서 구현할 때, 외부 API 호출로 인해 발생하는 문제를 해결하기 위해 다음과 같은 접근 방식을 사용해야 합니다:

  1. 주문서 조회: 주문서 정보를 조회합니다.
  2. 결제 요청: 결제 API를 호출하여 결제를 요청합니다. 결제가 성공적으로 완료되면 데이터베이스에 결제 정보를 저장합니다.
  3. 배송 요청: 배송 API를 호출하여 배송을 요청합니다. 배송 요청이 성공적으로 완료되면 데이터베이스에 배송 정보를 저장합니다.
  4. 재고 감소 요청: 재고 감소 API를 호출하여 재고를 감소시킵니다.
  5. 장바구니 비우기: 주문이 성공적으로 완료되면 장바구니를 비웁니다.