ACID vs BASE

반응형
반응형

Saga 패턴은 ACID 대신 BASE 원칙을 따르는 대표적인 기법 BASE는 Basically Available, Soft state, Eventual consistency의 약자야. 하나씩 간단하게 볼게!

  • Basically Available(기본적인 가용성)
  • 시스템이 항상 완전한 일관성을 보장하지 않더라도, 항상 응답은 가능한 상태를 유지해. 일부 데이터가 최신이 아니더라도 서비스는 계속 동작하는 거지.
  • Soft state(유연한 상태)
  • 데이터의 상태가 즉시 일관적이지 않아도 괜찮음. 각 서비스가 독립적으로 데이터를 관리하니까, 시스템 전체의 상태가 시간이 지나면서 변할 수 있어.
  • Eventual consistency(최종적인 일관성)
  • 즉시 일관성을 포기하는 대신, 일정 시간이 지나면 결국 데이터가 일관된 상태에 도달해. Saga 패턴에서 이벤트를 통해 각 서비스가 순차적으로 상태를 맞추는 방식이 이거야.

ACID는 트랜잭션의 강한 일관성을 보장하지만, 분산 환경에서는 오버헤드가 크고 확장성이 떨어져.

반면 BASE는 일관성을 조금 늦게 맞추는 대신 가용성과 확장성을 우선하는 방식

Saga 패턴이 BASE를 따르는 이유도 마이크로서비스 간의 비동기 통신에서 효율성을 확보하기 위해 사용한다.

BASE는 ACID와 달리 "지금 당장은 완벽하지 않더라도, 결국엔 괜찮아질 거야"라는 철학 Saga 패턴도 바로 이런 방식으로 동작해.

반응형

댓글

Designed by JB FACTORY