본문 바로가기
IT/Knowledge

SAGA 패턴

by 성준하이 2022. 7. 5.
반응형

이전 포스팅에서도 디자인 패턴에 대해서 다룬 글들이 몇개 있었다.

아래 참고 포스팅을 확인해보면 도움이 될것이다.

 

이번에 다룰 디자인 패턴은 SAGA 패턴이다.

해당 패턴은 MSA 구조에서 많이 사용되는 패턴으로 MSA 역시 아래 참고 포스팅을 참고하길 바란다.

 

SAGA 패턴이란?

마이크로서비스들끼리 이벤트를 주고 받아 특정 마이크로서비스에서의 작업이 실패하면 이전까지의 작업이 완료된 마이크서비스들에게 보상 (complemetary) 이벤트를 소싱함으로써 분산 환경에서 원자성(atomicity)을 보장하는 패턴이다.

즉 작업들이 하나의 트랜잭션으로 이루어져있고 하나라도 실패를 하면 작업이 rollback 된다고 생각을 하면 된다.

 

그림으로 보면 다음과 같다.

하나의 App 은 물론 하나의 기능이 될수도 있지만 좀더 넓은 의미로 하나의 서비스 전체를 의미한다고 생각하면

서로 의존되어있는 이런 트랜잭션이 있다.

정상 작동을 한다면 위 그림처럼 작동이 되겠지만 만약 하나라도 잘못 된다면 아래처럼 동작을 하게 해준다.

요즘처럼 MSA 가 대두되는 시점에서 SAGA 패턴 역시 알아야할 IT 지식으로 자리를 잡고 있으니 숙지하고 가길 바란다.


참고 포스팅

https://thenicesj.tistory.com/87

 

디자인패턴 정의와 종류

소프트웨어 개발을 할때 사용되는 디자인 패턴이란 과거에 소프트웨어 개발 과정에서 발견된 설계 노하우를 축적하여 그 방법에 이름이 붙여서 이후에 재사용 하기 좋은 형태로 특정 규약을 만

thenicesj.tistory.com

https://thenicesj.tistory.com/251

 

CQRS 패턴

CQRS란? Command Query Responsibility Segregation 의 약자로 단어 그대로 해석하면 명령 조회 책임 분리 라는 뜻 애플리케이션들을 구성하는 아키텍처에 대한 하나의 패턴 애플리케이션을 구현함에 있어 명

thenicesj.tistory.com

https://thenicesj.tistory.com/96

 

MSA(Micro Service Architecture) 소개

아키텍쳐라 하면 개발하는 방식을 뜻한다. 요즘엔 클라우드 기술이 많아지면서 마이크로서비스 아키텍쳐가 많이 사용된다, 이전까지의 방식으로는 monolithic 방식이라 해서 하나의 묶음으로 개

thenicesj.tistory.com

 

반응형

'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

댓글