[성능 패턴] 사가(Saga) 패턴

분산환경에서 트랜잭션 문제

Saga 패턴 - 실패

만약 작업이 실패하면 기존 작업을 롤백하기 위해 보상 작업을 수행한다.

Saga 패턴 오케스트레이터 패턴에 적용

오케스트레이션 서비스를 통해 분산 트랜잭션을 각기 실행한다. 각 서비스의 응답에 따라 다음 서비스를 호출할 지 보상 트랜잭션을 실행할 지 결정한다.

Saga 패턴 코레오그래피 패턴에 적용

코레오그래피 패턴에는 트랜잭션 관리를 위한 서비스가 없어서 각 서비스는 트랜잭션 시퀀스에서 다음 이벤트를 트리거 하거나 시퀀스에서 이전 서비스에 관한 보상 이벤트를 트리거 해야 한다.

Saga 패턴 구현

  • Saga 패턴은 다음에서 구현될 수 있다.
    • 실행 오케스트레이터 패턴
    • 코레오그래피 패턴
  • 다음 중 하나의 구현으로 트랜잭션을 관리할 수 있다.
    • 여러 서비스 간
    • 중앙 데이터베이스 없이

참고

반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유