핵심 요약
당근은 MongoDB Change Stream 기반의 CDC 파이프라인을 Flink CDC로 구축하고 Initial Full Dump를 Spark로 처리해 Two-Stage Table로 스키마를 관리하며 2시간 SLO를 안정적으로 달성하고 부하를 낮췄다.
구현 방법
- Change Stream을 Flink CDC로 구독하고 updateLookup으로 fullDocument를 유지해 트랜잭션 순서를 보장
- Initial Dump는 Spark로 처리 후 CDC로 증분 반영
- 배치 파이프라인은 Schema Evolution, Extract CUD Latest, Merge to Raw, Materialize to Final의 4단계로 운영
- Two-Stage Table: Stage1 Raw JSON, Stage2 Final; 스키마 변화에 지연 없이 반영
주요 결과
- 2시간 SLO를 충족했고 Stage2 반영은 20분 이내 달성
- 정합성 검증을 2주간 유지하며 안정성 확보
- 운영 부하 감소와 파이프라인 신뢰도 향상
