SAGA 패턴

Code_Builder·2024년 8월 13일
0
post-thumbnail

SAGA 패턴이란?

분산 시스템에서 트랜잭션을 관리하기 위한 설계 패턴

SAGA 패턴의 주요 개념

  • 트랜잭션 분할: 각 서비스는 자신의 트랜잭션을 수행하고, 결과를 다른 서비스와 공유함.

  • 보상 작업: 만약 어떤 트랜잭션이 실패하면, 이전에 성공한 트랜잭션에 대해 보상 작업(compensation)을 실행하여 시스템의 상태를 원래대로 롤백

  • 오케스트레이션(Orchestration): 중앙 조정자가 모든 서비스의 흐름을 관리하며, 각 단계의 성공 여부에 따라 다음 단계를 결정

중앙 조정자: 모든 서비스를 관리하고 조정하는 역할을 하는 컴포넌트 또는 시스템을 의미

  • 코레오그래피(Choreography): 각 서비스가 자신의 상태 변경을 이벤트로 알리고, 다른 서비스가 이 이벤트를 수신하여 필요한 작업을 수행

장점

  • 신뢰성: 트랜잭션에서 실패시 이전 상태로 되돌려 시스템의 신뢰성을 높이고, 데이터 일관성을 유지 가능

  • 유연성: 각 서비스가 독립적으로 트랜잭션을 처리할 수 있게 하여, 시스템의 확장성과 유지 보수성을 향상

  • 비동기 처리: 각 서비스가 독립적으로 작업을 수행하므로, 전체 프로세스가 비동기적으로 진행

  • 복잡성 감소: 큰 트랜잭션을 여러 개의 작은 트랜잭션으로 나누어 처리하므로, 시스템의 복잡성을 줄이고 관리 용이

  • 서비스 자율성: 각 서비스가 자신의 트랜잭션을 관리하게 되어, 서비스 간의 결합도가 낮아짐

  • 비즈니스 로직 표현 용이: 복잡한 비즈니스 로직을 여러 단계로 나누어 표현할 수 있음

profile
사소한일에도 최선을 다하기

0개의 댓글

관련 채용 정보