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

   ## Motivation
   
   The repository pins `debezium = "3.4.2.Final"` (released 2026-03-02). The 
current Debezium release is **3.6.0.Final** (2026-07-01), so we are two minor 
versions behind.
   
   Debezium has no LTS line — fixes land on the newest minor only. Once #NN 
bumps us to `3.4.3.Final` (2026-03-30, the last patch the 3.4 line will ever 
receive), the 3.4 branch is end-of-line and we stop receiving bug and security 
fixes entirely. Each additional minor release makes the eventual migration more 
expensive.
   
   ## Scope
   
   Bump `debezium` in `gradle/libs.versions.toml` from `3.4.3.Final` to 
`3.6.0.Final` and fix any resulting breakage.
   
   **The connector set is unchanged.** Comparing the `debezium-bom` contents 
for 3.4.2 and 3.6.0, the only addition is `debezium-connector-common` (an 
internal refactor). No wrapper module gains or loses a target.
   
   ## Risks
   
   The real risk is our coupling to Debezium **internals**, which are not 
API-stable across minor versions:
   
   - `debezium/core` implements the schema-history SPI (`PulsarSchemaHistory`) 
against `io.debezium.storage` / `SchemaHistory` interfaces.
   - `kafka-connect-adaptor` (`AbstractKafkaConnectSource`) starts Debezium 
tasks directly and depends on connector/task config-key conventions.
   - `DebeziumSource` subclasses assert on Debezium's `connector.class` / 
`task.class` values.
   
   Issue #61 is a concrete example of this coupling already breaking against 
3.4.x (multi-partition SQL Server connectors never receive `task.id` because we 
bypass `taskConfigs()`). Expect similar sharp edges on a minor bump; #61 should 
ideally be fixed first, or at least understood, since it touches the same 
task-startup path.
   
   ## Prerequisites
   
   The integration tests added in #58 (MongoDB), #60 (SQL Server), and #62 
(Oracle) should be **merged before this migration**. Prior to those, a Debezium 
bump was validated only by the MySQL and Postgres tests. With all five source 
connectors exercised against real databases via Testcontainers, this upgrade 
either passes CI across the board or points directly at the connector that 
broke.
   
   ## Note: this will not fix the Testcontainers conflict
   
   `debezium-bom:3.4.2.Final` pins Testcontainers core to `2.0.2`; 
`3.6.0.Final` (via `debezium-build-parent`) pins `2.0.3`. Both are 2.x, while 
the specialized Testcontainers modules (e.g. `org.testcontainers:oracle-free`) 
still target 1.21.x and reference shaded classes removed in 2.x. 
Debezium-module integration tests must keep using the `GenericContainer` 
pattern (as `debezium/mysql` and `debezium/oracle` do) regardless of this 
upgrade — see the discussion in #62.
   
   ## Suggested order
   
   1. Merge #58, #60, #62 (integration-test safety net)
   2. Land the `3.4.3.Final` patch bump (low risk, free fixes)
   3. Address or characterize #61
   4. Migrate to `3.6.0.Final` and let the five connector integration tests 
validate it


-- 
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