이제는 흐름 전체를 보는 중심자가 필요하다

chap01에서는 주문 서비스가 직접 상품 서비스와 배송 서비스를 호출했다.

그 구조에서는 적어도 “누가 전체를 조율하는가”라는 질문에 주문 서비스가 어느 정도 답이 될 수 있었다.

하지만 chap03에서는 메시지와 비동기 협업이 들어온다.

그 순간부터는 흐름 전체를 조율하는 중심자가 더 분명하게 필요해진다.

그 역할을 맡는 것이 Orchestrator다.

image.png

이 프로젝트에서 Orchestrator는 무엇을 하나

OrderOrchestrator는 여러 이벤트를 받아서 다음 커맨드를 발행한다.

즉, 아래와 같은 역할을 맡는다.

즉, 오케스트레이터는 스스로 비즈니스 데이터를 저장하는 주체라기보다, 흐름 전체를 보고 다음 단계를 결정하는 조율자다.

왜 이 역할이 중요할까

메시지가 많아질수록 흐름은 더 느슨해진다.

그렇다면 동시에 “누가 전체 그림을 보고 있는가”가 더 중요해진다.

오케스트레이터가 없다면, 각 서비스가 자기 일만 하다가 전체 흐름을 일관되게 유지하기 어려워질 수 있다.