186
이벤트 기반 마이크로서비스 구축
워크플로 모니터링
●
어떤 이벤트에 대해 워크플로가 언제 완료됐는지 어떻게 알 수 있나?
●
이벤트 처리 도중 실패하거나 워크플로 어딘가에서 막혔는지 여부를 어떻게 판단할까?
●
워크플로의 전체 상태는 어떻게 모니터링할 것인가?
분산 트랜잭션 구현
●
대부분의 워크플로는 여러 액션이 함께 일어나거나 아무 액션도 일어나지 않아야 한다.
분산 트랜잭션은 어떻게 구현할 것인가?
●
분산 트랜잭션은 어떻게 롤백하나?
지금부터 코레오그래피와 오케스트레이션, 두 가지 주요 워크플로 패턴을 중심으로 위와 같은
문제의 해결 방법을 제시해보겠습니다.
8.1
코레오그래피 패턴
코레오그래피 아키텍처
choreographed
architecture
(리액티브 아키텍처
reactive
architecture
라고도 함)는 고도
로 분리된
decoupled
마이크로서비스 아키텍처를 가리키는 용어입니다. 마이크로서비스는 업스트
림 프로듀서나 후속 다운스트림 컨슈머와는 완전히 독립적으로, 일체의 차단과 대기 없이 입력
이벤트가 도착하는 대로 반응합니다. 마치 무용수가 공연 중에 그 누구의 지시도 받지 않고 자
신이 맡은 분량의 춤을 알아서 소화해내는 것과 같은 이치입니다.
코레오그래피는 이벤트 기반 마이크로서비스 아키텍처에서 널리 쓰이는 패턴입니다. 이벤트
기반 아키텍처는 컨슈머가 업스트림 워크플로를 중단시키지 않고도 자유롭게 사용할 수 있는
관련 비즈니스 정보의 재사용 가능한 이벤트 스트림을 제공하는 일에 주력합니다. 또 모든 통