189
8
장
마이크로서비스 워크플로 구축
8.1.2
코레오그래피 워크플로의 생성과 수정
코레오그래피 패턴에서는 새로운 단계를 워크플로 끝부분에 쉽게 추가하는 것은 간단하지만
중간에 단계를 삽입하거나 워크플로 순서를 바꾸면 문제가 될 수 있습니다. 또 서비스 간의 관
계는 워크플로 콘텍스트 외부에서는 이해하기 어려울 수 있기 때문에 워크플로 내 서비스 수가
증가할수록 사정은 더 나빠질 것입니다. 특히, 비즈니스 기능이 여러 마이크로서비스 인스턴스
에 걸쳐 있는 경우 코레오그래피 워크플로는 더 취약해질 가능성이 높습니다. 이 문제는 서비
스 경계 콘텍스트를 침해하지 않고 전체 비즈니스 기능을 하나의 서비스로 로컬화하면 어느 정
도 해결할 수 있습니다. 하지만 정확하게 구현을 하더라도 비즈니스 로직이 조금이라도 바뀌면
워크플로 순서가 바뀌는 서비스는 물론 다수의 서비스를 수정하거나 뜯어고쳐야 할 수도 있습
니다.
8.1.3
코레오그래피 워크플로 모니터링
코레오그래피 워크플로를 모니터링하려면 워크플로의 규모와 범위를 잘 생각해야 합니다. 코
레오그래피 워크플로는 개별적으로 분산되어 있어서 특정 이벤트의 진행 상황을 파악하기 어
려운 경우가 많습니다. 이벤트 기반 시스템에서 비즈니스상 매우 중요한 워크플로를 모니터링
할 때에는 이벤트가 처리 중 교착 상태에 빠지거나 아예 처리가 실패할 수 있음을 고려하여 각
출력 이벤트 스트림을 받아 상태 저장소로 구체화할 필요가 있습니다.
예를 들어 [그림
8
-
2
]에서 워크플로 순서를 바꾸려면 워크플로의 가시성 체계 ...