CDC 와 encapsulation

zxzl·2023년 11월 23일
0

https://www.decodable.co/blog/change-data-capture-breaks-encapsulation-does-it-though

문제
CDC를 캐시 만드는 용도나, 그냥 레플리카 만드는 용도로 같은 팀 안에서 쓰면 상관이 없는데 팀끼리 주고 받는 이벤트로 쓰려면 좀 쎄한 점이 있다.

  • 스키마가 바뀌면?
  • 한 트랜잭션으로 테이블 2개가 바뀌었는데, 이 때 발생하는 change event 2개는 transaction으로 묶여있지 않음
  • 특정 칼럼은 좀 민감하면??

저자가 제안하는 해결책

  • Outbox pattern을 써보자
  • Flink 같은거로 한 번 만져서 외부에 쏠 이벤트를 만들자

결국 API 응답이 되었던 메시지가 되었던 외부랑 주고 받는 인터페이스는 잘 정의된 Contract를 따라야 한다는 이야기다. 저자 분은 Debezium을 만드시다가 요새 Flink를 많이 쓰셔서 결국 기승전 Flink ^^

profile
노션 대용 velog

0개의 댓글