
255
6
장
워크플로
6.4.36.4.3
사가와 분산 트랜잭션의 비교 사가와 분산 트랜잭션의 비교
지금까지 설명한 대로라면 분산 트랜잭션에는 몇 가지 중요한 문제가 있으며, 매우 특정한 몇
가지 상황을 제외하면 필자는 분산 트랜잭션을 피하는 편이다. 분산 시스템 분야의 개척자인
팻 헬런드
Pat
Helland
는 오늘날 주로 구축하는 애플리케이션 유형을 위한 분산 트랜잭션 구현과 관
련된 근본적인 문제의 핵심을 다음과 같이 뽑아냈다.
66
대다수 분산 트랜잭션 시스템에서 단일 노드에 장애가 발생하면 트랜잭션 커밋은 중단된다. 이로
인해 애플리케이션은 쐐기가 박힌 상태가 된다. 이런 시스템에서는 그 크기가 커질수록 시스템이
죽을 가능성도 높아진다. 모든 엔진이 작동해야 하는 비행기가 비행할 때, 엔진을 하나 추가하면
비행기의 가용성은 감소한다.
경험에 비춰보면, 비즈니스 프로세스를 사가로 명시적으로 모델링하면 분산 트랜잭션으로 인
한 다양한 문제를 피할 수 있으며 암시적으로 모델링된 프로세스가 개발자에게 더욱 명확하게
보여줄 수 있는 추가적 이점이 있다. 시스템의 핵심 비즈니스 프로세스를 최고 수준의 개념으
로 만들면 여러모로 유용할 것이다.
요약요약
보다시피 마이크로서비스 아키텍처에서 워크플로를 구현하는 방법은 구현할 비즈니스 프로세
스를 명시적으로 모델링하는 것이다. ...