SAGA 패턴 이전에 MSA 관련 포스트를 업로드하면서 MSA를 구축할 때에는 서비스 별로 DB를 구축하는 경우가 많기 때문에 트랜잭션을 어떻게 처리할 것인지에 대한 문제가 존재한다고 언급했었다. 그에 따라 각각의 서비스는 로컬 트랜잭션만을 처리하고 그 결과에 따라 트랜잭션 완료 이벤트 혹은 실패 이벤트를 전달함으로써 데이터의 일관성을 유지하는 SAGA 패턴이 등장하게 되었다. 로컬 트랜잭션이 발생하면 현재 DB를 업데이트한다. 만약 그것이 성공하는 경우 다음 로컬 트랜잭션을 트리거하고 실패하는 경우 보상 이벤트를 통해 이전 로컬 트랜잭션을 롤백한다. 완료 이벤트와 실패 이벤트는 동시 다발적으로 일어나는 것이 아니라 순차적으로 이루어진다. 여기서 트랜잭션의 관리 주체는 DBMS가 아니라 각각의 서비스이다..