더북(TheBook)

사가 오케스트레이터를 상태 기계로 모델링

상태 기계(state machine)9는 상태(state)와 이벤트에 의해 트리거되는 상태 전이(transition)로 구성됩니다. 전이가 발생할 때마다 액션(action)이 일어나는데, 사가의 액션은 사가 참여자를 호출하는 작용입니다. 상태 간 전이는 사가 참여자가 로컬 트랜잭션을 완료하는 시점에 트리거되고, 로컬 트랜잭션의 상태와 결과에 따라 상태 전이를 어떻게 하고 어떤 액션을 취할지 결정됩니다. 상태 기계는 효율적으로 테스트할 수 있기 때문에 상태 기계를 이용하여 사가를 모델링하면 설계, 구현, 테스트를 더 쉽게 진행할 수 있습니다.

그림 4-7은 상태 기계로 모델링한 주문 생성 사가입니다. 이 상태 기계를 구성한 상태는 다음과 같습니다.

소비자 확인: 초기 상태. 사가는 소비자 서비스가 주문 가능한 소비자인지 확인할 때까지 기다립니다.

티켓 생성: 사가는 티켓 생성 커맨드에 대한 응답을 기다립니다.

신용카드 승인: 회계 서비스가 소비자 신용카드를 승인할 때까지 기다립니다.

주문 승인됨: 사가가 성공적으로 완료되었음을 나타내는 최종 상태

주문 거부됨: 참여자 중 하나가 주문을 거부했음을 나타내는 최종 상태

 

 


9 역주 : ‘상태 기계’는 유한 상태 기계(FSM, Finite-state Machine)를 줄인 용어입니다. 컴퓨터 프로그램과 전자 논리 회로를 설계하는 데에 쓰이는 수학적 모델입니다. (출처: 위키백과, https://ko.wikipedia.org/wiki/유한_상태_기계)

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