I am happy to announce the release of Debezium 1.9.0.CR1!

Besides a range of bugfixes, this release brings the long-awaited support for Apache Cassandra 4! Overall, 52 issues have been fixed for this release.

Let’s take a closer look at both the Cassandra 3 changes & Cassandra 4 support.

Cassandra 3 changes & Cassandra 4 support

Cassandra 3 breaking changes

For users who need to use Cassandra 3, the Maven coordinates of the (incubating) connector have changed slightly in this release. The main change for Cassandra 3 is that the artifact name has changed:

<dependency>
  <groupId>io.debezium</groupId>
  <artifactId>debezium-connector-cassandra-3</artifactId>
  <version>1.9.0.CR1</version>
</dependency>

There is one additional user-facing change that this release introduces, which is a shift in the Cassandra driver. The connection configuration is no longer provided directly in the connector properties file but instead must be supplied using a separate application.conf file. You can find a full reference on the driver’s configuration here and below is an example:

datastax-java-driver {
  basic {
    request.timeout = 20 seconds
    contact-points = [ "spark-master-1:9042" ]
    load-balancing-policy {
      local-datacenter = "dc1"
    }
  }
  advanced {
    auth-provider {
      class = PlainTextAuthProvider
      username = user
      password = pass
    }
    ssl-engine-factory {
     ...
    }
  }
}

In order for the Debezium connector to read/use this new application configuration file, it must be set in the connector properties file as follows:

cassandra.driver.config.file=/path/to/application/configuration.conf

Cassandra 4 support

For new users and those looking to upgrade to Cassandra 4, the Maven coordinates for the new connector artifact are:

<dependency>
  <groupId>io.debezium</groupId>
  <artifactId>debezium-connectr-cassandra-4</artifactId>
  <version>1.9.0.CR1</version>
</dependency>

We introduced a new artifact rather than a user configurable toggle as this allows both code bases to diverge as needed. This allows both the Cassandra 3 and 4 connectors to be refined as needed, as we move forward to building the Cassandra 4 connector with Java 11 as a baseline.

The Debezium for Cassandra 4 connector is based on Apache Cassandra 4.0.2. If you intend to upgrade to Cassandra 4, the migration should be relatively seamless from Debezium’s perspective. Once the Cassandra environment has been upgraded, adjust the driver configuration as outlined in the above Cassandra 3 breaking changes section and restart the connector.hanges section and start the connector.

We would like to thank Štefan Miklošovič and Ahmed Eljami for this contribution!

Other Fixes and Changes

Further fixes and improvements in the 1.9.0.CR1 release include:

Please refer to the release notes to learn more about these and further fixes in this release.

As always, a big thank you to everyone contributing to this release:

Outlook

With CR1 done, you can expect 1.9 Final either later this week or early next week depending on issue reports.

As we begin to look ahead, you can expect work on Debezium 2.0 to begin in the near future. The current roadmap is to devote the next two release cycles on Debezium 2.0, releasing it sometime near the end of September 2022. In the meantime, expect regular updates to continue for Debezium 1.9 throughout this process.

Chris Cranford

Chris is a software engineer at Red Hat. He previously was a member of the Hibernate ORM team and now works on Debezium. He lives in North Carolina just a few hours from Red Hat towers.

   


About Debezium

Debezium is an open source distributed platform that turns your existing databases into event streams, so applications can see and respond almost instantly to each committed row-level change in the databases. Debezium is built on top of Kafka and provides Kafka Connect compatible connectors that monitor specific database management systems. Debezium records the history of data changes in Kafka logs, so your application can be stopped and restarted at any time and can easily consume all of the events it missed while it was not running, ensuring that all events are processed correctly and completely. Debezium is open source under the Apache License, Version 2.0.

Get involved

We hope you find Debezium interesting and useful, and want to give it a try. Follow us on Twitter @debezium, chat with us on Zulip, or join our mailing list to talk with the community. All of the code is open source on GitHub, so build the code locally and help us improve ours existing connectors and add even more connectors. If you find problems or have ideas how we can improve Debezium, please let us know or log an issue.