티스토리 뷰

 

Saga Pattern이란?

마이크로서비스간 이벤트를 주고 받아 특정 마이크로서비스에서 작업이 실패하면, 이전까지의 작업이 완료된 마이크로서비스에 보상(Compensating) 이벤트를 발행함으로써 원자성(atomicity)을 보장하는 패턴 입니다.

 

Saga의 뜻은?

Saga의 뜻을 아무리 찾아봐도 정리된 문서에서는 Saga에 대한 설명만 있을 뿐 Saga가 예를들어 Software Application Grouping Aggregate 이런식으로(이것을 예제일뿐입니다 실제 그렇다는 것이 아닙니다) 어떤 단어의 줄임말 이라던지 하는 설명이 없었습니다.

 

자꾸 Saga, Saga라는 단어가 나오는데 머리속에서 그려지지 않으니 익숙하지 않고 머리에 맴돌아서 영문으로 검색을 해보았습니다. saga full name 이라고 검색을 하니 아래와 같이 Stack Overflow의 글이 나왔습니다.

https://stackoverflow.com/questions/63319018/why-the-pattern-for-microservices-distributed-transactions-named-as-saga

해석을 해보자만 Saga는 줄임말이 아닌 1987년에 sagas.pdf (cornell.edu) 이 논문에서 LLTs(Long Lived Transaction)을 가리키는 말로 처음 언급이 되었습니다. 일종에 신조어라고 할 수 있습니다. 이 논문의 제목이 'SAGAS'입니다.

 

추측하기로는 Long Lived Transaction이 마치 중세 아이슬란드 문학의 산문과 '말해진 것, 말로 전하다' 라는 뜻의 '사가'(Saga)에서 온것 같다고 스택오버플로우 답변자가 말합니다.

 

https://ko.wikipedia.org/wiki/%EC%82%AC%EA%B0%80_(%EB%AC%B8%ED%95%99) 

 

사가 (문학) - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전.

ko.wikipedia.org

 

게임

'사가'라는 이름이 붙는것이 또 있습니다. 2000년대 초 한국에서 인기를 끌었던 '파랜드 택틱스'의 원제가 '파랜드 사가'입니다.

 

이 게임이 인기가 있었던 이유는 기존에 게임이 왕을 죽이거나 스테이지를 클리어하는 '목적'에 집중 했다면 게임에 캐릭터가 나오고 그 캐릭터들간에 '이야기'가 주를 이루어 더욱 게임에 몰입할 수 있고 재미를 주었기 때문인 것 같습니다.

 

파랜드 이야기, 파랜드 스토리 이런식으로 붙이면 조금 밋밋하기 때문에 중세 판타지 이름에 걸맞게 중세 아일랜드의 문학 장르인 '사가'라는 이름을 '이야기', '스토리' 대신 써서 이름을 멋있게 지은 것 같습니다.

 

결론

Saga는 '이야기'라는 뜻이다. 주문이 처리되고 상품이 차감되고 하는 마이크로 서비스간에 event가 발생하는 것도 일종에 '이야기'와 같은 성향이 있기 때문에 Saga Pattern은 '이야기 패턴'이라고 연결을 하면 더 와닿을 것 같습니다.

 

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함