Skip to content

[feat][io] Add Debezium MariaDB source connector #65

Description

@david-streamlio

Motivation

Debezium ships a MariaDB source connector (io.debezium:debezium-connector-mariadb, 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.

MariaDB is the highest-value gap:

  • Debezium split the MariaDB connector out of the MySQL connector, and both now build on the shared debezium-connector-binlog base. Our existing debezium/mysql module is therefore close to a drop-in template for the connector, the config plumbing, and the integration test.
  • We already ship a MariaDB JDBC sink (jdbc/mariadb, integration test added in [improve][test] Add MariaDB JDBC sink integration test #59), so a MariaDB source completes the story for that database.

Proposal

Add a debezium/mariadb module (pulsar-io-debezium-mariadb) following the structure of debezium/mysql:

  • DebeziumMariaDbSource extending DebeziumSource, asserting Debezium's connector.class/task.class for the MariaDB connector
  • include("debezium:pulsar-io-debezium-mariadb") in settings.gradle.kts
  • debezium-connector-mariadb = { module = "io.debezium:debezium-connector-mariadb" } in the version catalog
  • NAR packaging + distribution wiring, mirroring the MySQL module
  • A Testcontainers integration test cloned from DebeziumMysqlSourceTest

Notes

Identified by a scan of the Debezium connector catalog against our connector inventory.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions