• WAL: Write-Ahead Logging. 선행 기록 로그. DB 데이터를 실제로 변경하기 전에, 변경 내용을 로그에 먼저 기록해두는 방식
  • CDC: Change Data Capture. DB에서 어떤 데이터가 변경됐는지를 실시간으로 감지해서 다른 시스템에 전달하는 것.
    • CDC는 여러가지 방식을 사용할 수 있는데, 그 중 하나가 Log-base CDC이고 WAL이 그 로그를 기록하는 방식이다. 이외에도 Trigger-based (DB 트리거로 변경 이벤트 기록), Query/Polling (주기적으로 DB 조회), Application-level (애플리케이션이 변경과 동시에 이벤트 발행) 등이 있다.
    • WAL의 원래 목적은 crash recovery, durability, replication (한 db의 데이터를 다른 db로 복제) 등 인데 CDC에도 사용될 수 있는 것
    • WAL은 DB 엔진이 이해하는 저수준 언어로 작성 => Logical Decoding을 통해 SQL문처럼 읽을 수 있게 디코딩하는 작업이 필요. 즉, WAL -> Logical Decoding -> CDC