outbox 3

CDC와 이벤트

학습 목표Dual write가 DB COMMIT과 메시지 publish 불일치를 만드는 이유를 설명할 수 있다.Transactional outbox로 로컬 TX 안에 비즈니스 row·이벤트 row를 함께 COMMIT하는 이유를 설명할 수 있다.CDC가 WAL/binlog logical 스트림에서 row change를 캡처함을 설명할 수 있다.Debezium connector·envelope·slot 개념을 개요 수준에서 설명할 수 있다.At-least-once 전달에서 순서·중복·멱등 처리를 설계할 수 있다.문제 상황INSERT orders COMMIT 후 Kafka publish timeout — DB 있음 · 재고 미반영publish 성공 → DB ROLLBACK — 유령 이벤트캐시 DEL 앱 코드 ..

이벤트 스트리밍과 CDC

학습 목표이벤트 스트리밍 로그(Kafka)의 partition·offset·consumer group을 설명할 수 있다.Transactional outbox로 DB commit과 이벤트 publish 원자성을 확보할 수 있다.CDC(Change Data Capture) 가 WAL/binlog에서 변경을 읽어 다운스트림에 전파함을 설명할 수 있다.Eventual consistency의 지연·멱등·순서를 SLO와 함께 설계할 수 있다.문제 상황주문 저장 성공 후 Kafka publish 타임아웃 — DB에는 있는데 재고는 미반영반대로 publish 성공 후 DB rollback — 유령 이벤트만 흐름캐시 invalidation을 앱 코드에만 의존 — 배포 누락 시 영구 stale검색 인덱스(Elasticse..

분산 트랜잭션 개요

학습 목표분산 트랜잭션이 여러 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..