더북(TheBook)

4.4.2 주문 생성 사가 구현

주문 생성 사가의 각 클래스는 다음과 같은 역할을 담당합니다.

CreateOrderSaga: 사가의 상태 기계를 정의한 싱글턴 클래스(singleton class) Create OrderSagaState로 커맨드 메시지를 생성하고, 사가 참여자 프록시 클래스(예: Kitchen ServiceProxy)가 지정한 메시지 채널을 통해 참여자에게 메시지를 전달합니다.

CreateOrderSagaState: 사가의 저장 상태. 커맨드 메시지를 생성합니다.

사가 참여자 프록시 클래스: 프록시 클래스마다 커맨드 채널, 커맨드 메시지 타입, 반환형으로 구성된 사가 참여자의 메시징 API를 정의합니다.

 

이런 클래스를 이벤추에이트 트램 사가 프레임워크로 작성하는 것입니다.

이벤추에이트 트램 사가 프레임워크는 사가의 상태 기계를 정의하기 위해 필요한 DSL(Domain Specific Language, 도메인 특화 언어)15을 제공합니다. 또 사가의 상태 기계를 실행하고 이벤추에이트 트램 프레임워크를 이용하여 사가 참여자와 메시지를 주고받으며 사가 상태를 DB에 저장합니다.

주문 생성 사가 구현체로 들어갑시다. 먼저 CreateOrderSaga 클래스입니다.

 

 


15 역주 : 특정한 도메인을 적용하는 데 특화된 컴퓨터 언어입니다. 어느 도메인에서나 적용 가능한 범용 언어(general-purpose language)와 반대되는 개념입니다. (출처: 위키백과)

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