반응형
이전 포스팅에서도 디자인 패턴에 대해서 다룬 글들이 몇개 있었다.
아래 참고 포스팅을 확인해보면 도움이 될것이다.
이번에 다룰 디자인 패턴은 SAGA 패턴이다.
해당 패턴은 MSA 구조에서 많이 사용되는 패턴으로 MSA 역시 아래 참고 포스팅을 참고하길 바란다.
SAGA 패턴이란?
마이크로서비스들끼리 이벤트를 주고 받아 특정 마이크로서비스에서의 작업이 실패하면 이전까지의 작업이 완료된 마이크서비스들에게 보상 (complemetary) 이벤트를 소싱함으로써 분산 환경에서 원자성(atomicity)을 보장하는 패턴이다.
즉 작업들이 하나의 트랜잭션으로 이루어져있고 하나라도 실패를 하면 작업이 rollback 된다고 생각을 하면 된다.
그림으로 보면 다음과 같다.
하나의 App 은 물론 하나의 기능이 될수도 있지만 좀더 넓은 의미로 하나의 서비스 전체를 의미한다고 생각하면
서로 의존되어있는 이런 트랜잭션이 있다.
정상 작동을 한다면 위 그림처럼 작동이 되겠지만 만약 하나라도 잘못 된다면 아래처럼 동작을 하게 해준다.
요즘처럼 MSA 가 대두되는 시점에서 SAGA 패턴 역시 알아야할 IT 지식으로 자리를 잡고 있으니 숙지하고 가길 바란다.
참고 포스팅
https://thenicesj.tistory.com/87
https://thenicesj.tistory.com/251
https://thenicesj.tistory.com/96
반응형
'IT > Knowledge' 카테고리의 다른 글
OLTP, OLAP (22) | 2022.07.09 |
---|---|
Apache Kafka 란? (41) | 2022.07.07 |
클라우드 vs 코로케이션 차이 (58) | 2022.07.04 |
CQRS 패턴 (40) | 2022.06.29 |
BPMN 설명 및 Bizagi 툴 (52) | 2022.06.27 |
댓글