더북(TheBook)

sagas.orchestration 패키지는 이 프레임워크에서 가장 복잡한 부분입니다. 사가 기초 인터페이스 SimpleSaga, 사가 인스턴스를 생성/관리하는 클래스 SagaManager가 이 패키지에 있습니다. SagaManager는 사가를 저장하고, 자신이 생성한 커맨드 메시지를 전송하고, 응답 메시지를 구독하고, 사가를 호출하여 응답을 처리합니다. OrderService가 사가를 생성할 때 이벤트 순서는 다음과 같습니다(그림 4-13).

1. OrderServiceCreateOrderSagaState를 생성합니다.

2. OrderServiceSagaManager를 호출하여 사가 인스턴스를 생성합니다.

3. SagaManager는 사가 데피니션의 첫 번째 단계를 실행합니다.

4. CreateOrderSagaState를 호출하여 커맨드 메시지를 생성합니다.

5. SagaManager는 커맨드 메시지를 사가 참여자(소비자 서비스)에게 보냅니다.

6. SagaManager는 사가 인스턴스를 DB에 저장합니다.

 

▲ 그림 4-13 Orderservice가 주문 생성 사가 인스턴스를 생성할 때 발생하는 이벤트

 

▲ 그림 4-14 sagaManager가 사가 참여자의 응답 메시지를 수신할 때 발생하는 이벤트

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.