더북(TheBook)

invokeParticipant()는 포워드 트랜잭션(forward transaction)을 정의한 메서드입니다. CreateOrderSagaState.makeCreateTicketCommand()CreateTicket 커맨드 메시지를 생성한 후, kitchenService.create에 지정된 채널로 보냅니다. onReply()를 호출해서 주방 서비스로부터 성공 응답을 받으면 CreateOrderSagaState.handleCreateTicketReply()를 호출합니다. 이 메서드는 주방 서비스가 반환한 CreateTicketReply.ticketIdCreateOrderSagaState.ticketId에 세팅합니다. 보상 트랜잭션은 withCompensation()으로 정의합니다. CreateOrderSagaState.makeCancelCreateTicketCommand()를 호출해서 CancelCreateTicket 커맨드 메시지를 생성한 후, kitchenService.create에 지정된 채널로 메시지를 전송합니다.

다른 사가 단계도 이와 비슷하게 정의합니다. CreateOrderSagaState는 사가가 KitchenService Proxy에 정의된 메시징 끝점(CommandEndpoint)으로 보낼 메시지를 생성합니다.

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