SAGA 2

분산 트랜잭션 개요

학습 목표분산 트랜잭션이 여러 DB·서비스에 걸친 원자성 문제를 만든다는 것을 설명할 수 있다.2PC(Two-Phase Commit) 의 prepare·commit 단계와 블로킹·조정자 SPOF 한계를 설명할 수 있다.3PC가 2PC를 개선하려다 복잡도만 늘리는 이유를 설명할 수 있다.Saga(오케스트레이션·코레오그래피)와 보상 트랜잭션으로 ** eventual consistency**를 설계할 수 있다.Transactional outbox로 DB COMMIT과 이벤트 발행을 한 로컬 TX에 묶는 이유를 설명할 수 있다.문제 상황주문 DB COMMIT 후 결제 API 타임아웃 — 주문만 생성됨두 시스템 하나의 ROLLBACK 불가샤드 A·B에 한 번에 INSERT — cross-shard ACID 기대P..

동기 vs 비동기 통신

학습 목표동기 vs 비동기 서비스 간 통신의 결합·지연·일관성 트레이드오프를 설명할 수 있다.REST와 gRPC를 동기 IPC 관점에서 비교·선택할 수 있다.메시지 큐·이벤트 기반 비동기 통신의 역할을 설명할 수 있다.Saga로 분산 트랜잭션을 보상(compensating) 으로 다루는 방식을 설명할 수 있다.문제 상황주문 API p99 2.8s — Payment·Inventory·Points 순차 REST, hop마다 +400msPayment 503 → Order 503 — caller가 전체 실패, 재고는 이미 예약됨모바일이 Catalog 20번 호출 — BFF 없이 chatty REST팀 A는 JSON REST, 팀 B는 Protobuf gRPC — Gateway에서 변환 지옥"비동기로 바꿨다"는데..