mattp5657 opened a new pull request, #3640:
URL: https://github.com/apache/iggy/pull/3640

   ## Which issue does this PR address?
   
   Relates to #3582
   
   ## Rationale
   
   Builtin CDC mode currently produces zero messages against a real
   database - wrong plugin/read-path pairing, and a parser matching a
   format no real Postgres output plugin emits. This PR is scoped to
   getting CDC actually working and provably correct, nothing more.
   
   Left out of scope here, and why:
   - `pgoutput` as the long-term plugin - real binary decoder + streaming
     connection is a much bigger lift; `test_decoding` unblocks correctness
     today. Target once `cdc_backend = "pg_replicate"` gets picked up.
   - At-least-once / crash safety (slot advances before send is confirmed,
     no LSN tracked) - needs its own review since it touches the
     state-persistence contract. Follow-up: #TODO.
   - Cosmetic items (UUID vs PK as message id, processing time vs WAL
     commit time, `old_data` unpopulated) - mechanical, separate PR.
   
   Bundling all of the above into one PR would make it unreviewable -
   splitting it this way keeps each piece independently checkable.
   
   ## What changed?
   
   Before: wrong slot plugin, a parser matching a format no real Postgres
   output emits, and invalid setup SQL - CDC produced zero messages, and
   several related bugs failed silently too. After: parser rewritten
   against real captured output, setup/poll SQL fixed and bounded, and
   those failure modes now work correctly or fail loudly. Covered by
   corpus-driven unit tests plus integration tests against a live
   `wal_level=logical` container.
   
   - Parser rewritten against real `test_decoding` output
   - Slot/setup SQL fixed, including the upgrade path and table filtering
   - Batch handling hardened (bad rows, unbounded backlog)
   - Dead config fields removed
   
   ## Local Execution
   
   - Passed 
   - Pre-commit hooks ran 
   
   ## AI Usage
   
   Claude was used to help generate and review this PR.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to