개별 서비스 내부에는 명시적 트랜잭션하지만, 서비스간 데이터 일관성을 위해서 사가 패턴으로 관리함
왜냐하면 이는 분산 시스템의 메시지 중복을 막기 위해서 설계된 느낌
결국 스프링의 한계를 보완하기 위한 패턴이 SAGA 패턴이었던거 같다.
개별 서비스 내부에는 명시적 트랜잭션하지만, 서비스간 데이터 일관성을 위해서 사가 패턴으로 관리함
왜냐하면 이는 분산 시스템의 메시지 중복을 막기 위해서 설계된 느낌
결국 스프링의 한계를 보완하기 위한 패턴이 SAGA 패턴이었던거 같다.
우흥
보지털
스프링이랑은 상관 없잖아 사가는 msa 아키텍처 패턴이고
아니 상관있음
MSA 최초 대중화가 스프링쪽 문제때문에 나온거임.
본문에도 있지만 스프링 자체가 가지는 한계점때문에 나온 패턴이라는거지. 실제로 MSA 아키텍쳐 구현중하나지만 실제로 최초 대중화 자체는 스프링 기반임
본문에도 있지만 스프링 단일 트랙잭션 모델 한계때문에 SAGA가 그걸 해결하기 위해서 나왔다는 느낌인거. 즉 MSA로 이행하는 과정에서 스프링 한계때문에 나온게 아닐까 하는거지
netflix oss로 대중화된 msa가 스프링 기반이니 스프링에 한계가 있었다는 건 비약인듯 너 말대로 스프링은 구현체 중 하나고 사가는 분산 서비스 환경에서 트랜잭션 처리를 위한 아키텍처고
@부드러운곰탱이
이 넷플릭스 oss가 대중화되면서 문제 해결을 위한 패턴으로 나온게 SAGA임
https://en.wikipedia.org/wiki/Conductor_%28software%29
@부드러운곰탱이 그니까 스프링으로 말미암아 직접적으로 나온게 아니라 트랜잭션 자체에 문제가 있으니까, 거기에 대한 해결 방안으로 SAGA가 나온거고, 실제로 넷플릭스 오픈소스에도 있음. 이거는 나도 좀 가물가물했었는데
@부드러운곰탱이 뭐 너가 좀 더 정확하긴한데, 내 감상으로는 그렇다는거지. 네 말이 완전 틀렸다 이런게 아니라, 너는 직접적으로 연관 없었다고, 나는 이런 부분들때문에 연관있었던게 아닐까하는거고
ㅇㅇ 사가는 기존 모놀리식 환경에선 없던 분산 서비스 환경에서 트랜잭션을 다루기 위한 패턴인건데 스프링도 msa도 잘 모르는 사람이 이 글을 보면 사가가 스프링의 어떠한 문제를 직접 해결했다는 걸로 받아들일거임
@부드러운곰탱이 근데 애초에 프갤에 그걸 모르는 사람이 있긴할까 싶다. 어차피 스프링이 모놀리씩 위주라 사실 MSA로 넘어갈때 다르게 적용해야하는건 다 알건데 여튼 뭐 그런 의미로 쓴건 아니었는데 니 말들어보니 그렇게 보일수도 있겠구나 싶다