현재 API 아키텍쳐 MSA 전환 설계 흐름

ReservationFacade 로직을 기반으로 한 MSA 전환 예시

  1. 좌석 예약 프로세스 분리

    • 콘서트 서비스:

      • 좌석의 예약 가능 여부를 체크하고, 좌석 상태를 “임시 예약” 상태로 변경

      • 결과를 이벤트(예: 좌석 예약 완료 이벤트)로 발행

    • 예약 서비스:

      • 이벤트를 수신하여 예약 정보를 생성하고, 예약 상태를 “예약 대기” 또는 “예약 확정”으로 관리

  2. 결제 처리 프로세스 분리

    • 결제 서비스:

      • 결제 요청을 받아 결제 이력을 생성하고, 결제 결과를 이벤트로 발행

    • 사용자 서비스:

      • 결제 이벤트를 수신하여 사용자 잔액을 차감하고, 결제 후 잔액 정보를 업데이트

    • 콘서트/예약 서비스:

      • 결제 성공 이벤트에 따라 좌석 및 예약 상태를 “결제 완료”로 업데이트

    • 토큰 서비스:

      • 결제 처리 완료 후, 관련 사용자 토큰을 조회 및 만료 처리 (이벤트 또는 별도 비동기 호출)

  3. 트랜잭션 처리

    • 각 서비스는 자체 로컬 트랜잭션을 사용하여 데이터 무결성을 유지

    • 전체 비즈니스 프로세스(예: 좌석 예약부터 결제 완료까지)는 SAGA 패턴을 도입하여 각 서비스의 로컬 트랜잭션을 순차적으로 실행하고, 실패 시 보상 트랜잭션으로 복구하는 방식으로 관리

Last updated