분산 시스템에서 여러 서비스에 걸친 트랜잭션을 다룰 때, Saga Pattern은 사실상 표준적인 접근법이 됐다.그런데 막상 도입하려고 하면 바로 이 질문에 부딪힌다."Choreography과 Orchestration 중 이 프로젝트에 적절한 것은 무엇인가?" 둘 다 같은 문제를 풀지만, 구조와 트레이드오프가 꽤 다르다. 이 글에서는 두 방식을 비교하고, 어떤 상황에서 무엇이 더 맞는지를 정리한다.Saga Pattern이란?마이크로서비스 환경에서 단일 DB 트랜잭션처럼 ACID를 보장하는 건 불가능하다.Saga는 이를 해결하기 위해 각 서비스의 로컬 트랜잭션을 연결하고, 중간에 실패하면 보상 트랜잭션(Compensating Transaction) 으로 롤백하는 패턴이다.구현 방식은 두 가지다.Choreo..