You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by "david-streamlio (via GitHub)" <gi...@apache.org> on 2026/07/09 20:05:10 UTC

[I] [feat][io] Add Debezium Db2 source connector [pulsar-connectors]

david-streamlio opened a new issue, #66:
URL: https://github.com/apache/pulsar-connectors/issues/66

   ## Motivation
   
   Debezium ships a Db2 source connector (`io.debezium:debezium-connector-db2`, present in the `debezium-bom` at our pinned version), but this repository does not wrap it. We currently wrap 5 of Debezium's 12 source connectors: MySQL, PostgreSQL, MongoDB, Oracle, and SQL Server.
   
   Db2 is a mature Debezium connector with real enterprise demand, and its CDC model (capture tables, populated by an ASN capture agent) is close enough to SQL Server's that the existing `debezium/mssql` module is a reasonable structural template.
   
   ## Proposal
   
   Add a `debezium/db2` module (`pulsar-io-debezium-db2`) following the structure of the existing Debezium modules:
   
   - `DebeziumDb2Source` extending `DebeziumSource`
   - `include("debezium:pulsar-io-debezium-db2")` in `settings.gradle.kts`
   - `debezium-connector-db2 = { module = "io.debezium:debezium-connector-db2" }` in the version catalog
   - NAR packaging + distribution wiring
   - A Testcontainers integration test using the `icr.io/db2_community/db2` image
   
   ## Notes
   
   - **Check whether Db2 is a multi-partition connector.** If it is, it will hit the same `task.id` gap as SQL Server (#61), where `AbstractKafkaConnectSource` never calls `connector.taskConfigs()` for Debezium sources. #61 should ideally land first.
   - Verify the Db2 JDBC driver (`com.ibm.db2:jcc`) reaches the NAR at runtime; `debezium-connector-db2` may not bundle it. (For comparison, `debezium-connector-oracle` *does* pull `ojdbc11` transitively — verified in #62.)
   - The Db2 container image is large and requires accepting a license and privileged mode; evaluate CI runtime cost before committing to running its test on every PR.
   - Use the `GenericContainer` pattern (see the Testcontainers version conflict noted in #62).
   
   _Identified by a scan of the Debezium connector catalog against our connector inventory._


-- 
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: commits-unsubscribe@pulsar.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org