URL이 복사되었습니다.

이벤트 소싱

    MSA 분산 트랜잭션

    MSA 분산 트랜잭션

    모놀리식 애플리케이션에서는 하나의 로컬 DB 트랜잭션으로 여러 하위 도메인의 데이터를 ACID 하게 변경 가능하다. ex) 주식거래 앱 ⇒ 사용자가 했던 주문이 체결되었을 때 하나의 로컬 트랜잭션으로 사용자가 보유한 현금을 줄이고, 주문 상태를 “체결됨” 상태로 변경하며, 보유 주식을 늘리는 것이 가능하다. MSA 에서는 각 서비스가 DB 를 가지고, 기존에 하나의 DB 에 모두 저장되었던 데이터를 각 서비스에 나뉘어져 관리된다. ex) 주식거래 앱이 주문 서비스, 주식 잔고 서비스, 회계 서비스 등으로 구성된다. 각 서비스에서 실행되는 여러 로컬 트랜잭션을 하나의 글로벌 트랜잭션으로 묶어 ACID 하게 할 필요가 있다. 💡 분산 트랜잭션 없이 매번 HTTP/gRPC 등으로 다른 서비스에 요청하여 데이터..