saga사가 패턴
saga는 긴 트랜잭션을 여러 단계로 나누고 실패하면 보상 작업으로 앞 단계를 되돌리는 설계 패턴이다.
기사 1편
최근 언급 saga는 여러 서비스나 자원에 걸친 긴 작업을 각각 독립적으로 완료되는 작은 단계의 연속으로 다루는 설계 패턴이다. 각 단계에는 그 결과를 되돌리는 보상 작업(compensating action)을 짝지어 두고, 중간 단계가 실패하면 이미 끝난 단계의 보상 작업을 거꾸로 실행해 전체를 일관된 상태로 되돌린다.
하나의 데이터베이스 트랜잭션으로 묶기 어려운 마이크로서비스 아키텍처에서 데이터 일관성을 지키는 방법으로 널리 쓰이며, 중앙의 오케스트레이터가 단계를 지휘하는 방식과 서비스들이 이벤트를 주고받으며 진행하는 방식이 있다.
이 설명은 AIPOST 기사와 널리 알려진 사실을 바탕으로 정리했습니다. 잘못된 내용이 있으면 정정 요청으로 알려 주세요.