본문 바로가기
ETC

SAGA 패턴

by kiwi_wiki 2025. 1. 24.
728x90
반응형

Choregraphy-based SAGA(코레오그래피 사가)

  • 순차적으로 이벤트가 전달되면서 트랜잭션이 관리되는 방식
  • 이벤트는 RabbitMQ, Kafka와 같은 메시지 큐 미들웨어를 사용해서 비동기 방식 혹은 분산 처리 형태로 전달할 수 있음
  • 코레오그래피 방식의 경우 에러가 발생했을 때 현재 트랜잭션 상태에 대해 파악하기 어려움
  • 확장이 어려움

Orchestration-based SAGA(오케스트레이션 사가)

  • 서비스가 Event를 직접 구독하지 않고, Saga Orchestrator에서 Event를 구독한 후 각 서비스를 호출하여 트랜잭션을 관리하는 방식
  • 트랜잭션에 관여하는 모든 서비스는 Orchestrator에 의해 트랜잭션을 수행하고 결과를 Orchestrator에게 전달
  • 오케스트레이션 방식은 현재 트랜잭션의 상태를 파악하기 용이하고 각 서비스의 구현이 비교적 간단해짐
  • 단, 추가적인 인프라를 사용해야 한다는 단점이 있고 Orchestrator가 비즈니스 로직에 의존하면 안된다는 점을 주의해야 함

728x90
반응형