We are happy to announce the second maintenance release of the Debezium 2.5 release stream, Debezium 2.5.2.Final. This release includes some improvements and numerous bug fixes, so let’s dive right in…​

Improvements and changes

Scoped Key/Trust - store support with MongoDB

Debezium supports secure connections; however, MongoDB requires that the key/trust -store configurations be supplied as JVM process arguments, which is less than ideal for environments in the cloud. This feature was first introduced as part of Debezium 2.6, and we’ve opted to back-port this to Debezium 2.5. This new change allows per connector scoped key/trust -store configurations as part of the connector configuration (DBZ-7379).

The MongoDB connector now includes the following new configuration properties:

mongodb.ssl.keystore

Specifies the path to the SSL keystore file.

mongodb.ssl.keystore.password

Specifies the credentials to open and access the SSL keystore provided by mongodb.ssl.keystore.

mongodb.ssl.keystore.type

Specifies the SSL keystore file type, defaults to PKC512.

mongodb.ssl.truststore

Specifies the path to the SSL truststore file.

mongodb.ssl.truststore.password

Specifies the credentials to open and access the SSL truststore provided by mongodb.ssl.truststore.

mongodb.ssl.truststore.type

Specifies the SSL truststore file type, defaults to PKC512.

Other changes

Altogether, 30 issues were fixed in this release:

  • PostgreSQL connector doesn’t restart properly if database if not reachable DBZ-6236

  • Correctly handle METADATA records DBZ-7176

  • Cassandra-4: Debezium connector stops producing events after a schema change DBZ-7363

  • Informix-Connector breaks on table with numerical default value DBZ-7372

  • Poor performance with incremental snapshot with long list of tables DBZ-7421

  • Oracle Snapshot mistakenly uses LogMiner Offset Loader by default DBZ-7425

  • Reselect columns should source key values from after Struct when not using event-key sources DBZ-7429

  • Allow the C3P0ConnectionProvider to be customized via configuration DBZ-7431

  • Stopwatch throw NPE when toString is called without having statistics DBZ-7436

  • Adhoc snapshots are not triggered via File channel signal when submitted before the start of the application DBZ-7441

  • Upgrade protobuf to 3.25.2 DBZ-7442

  • Correct debezium.sink.pubsub.flowcontrol.* variable names in Debezium Server docs site DBZ-7443

  • LogMiner batch size does not increase automatically DBZ-7445

  • Consolidate version management DBZ-7455

  • Oracle connector does not ignore reselection for excluded clob/blob columns DBZ-7456

  • The expected value pattern for table.include.list does not align with the documentation DBZ-7460

  • Signals actions are not loaded for SQLServer DBZ-7467

  • MySQL connector cannot parse table with WITH SYSTEM VERSIONING PARTITION BY SYSTEM_TIME DBZ-7468

  • Test Db2ReselectColumnsProcessorIT randomly fails DBZ-7471

  • Make readiness and liveness proble timouts configurable DBZ-7476

  • PreparedStatement leak in Oracle ReselectColumnsProcessor DBZ-7479

  • Document toggling MariaDB mode DBZ-7487

  • Poor snapshot performance with new reselect SMT DBZ-7488

  • Debezium Oracle Connector ParsingException on XMLTYPE with lob.enabled=true DBZ-7489

  • Fix MySQL 8 event timestamp resolution logic error where fallback to seconds occurs erroneously for non-GTID events DBZ-7500

  • Add Start CDC hook in Reselect Columns PostProcessor Tests DBZ-7516

  • Update commons-compress to 1.26.0 DBZ-7520

  • Promote JDBC sink from Incubating DBZ-7521

  • Fix null event timestamp possible from FORMAT_DESCRIPTION and PREVIOUS_GTIDS events in MySqlStreamingChangeEventSource::setEventTimestamp DBZ-7567

A big thank you to all the contributors from the community who worked on this release: Andrey Pustovetov, Chris Cranford, Clifford Cheefoon, Jakub Cechacek, Jiri Pechanec, Lars M. Johansson, Lourens Naudé, Mario Fiore Vitale, Ondrej Babec, Robert Roldan, and Stavros Champilomatis!

Outlook & What’s next?

We are just over a month away from the next minor installment, Debezium 2.6. This next release is packed with tons of new features and changes that we are excited to share. We encourage you to take a moment, grab the pre-releases available here, and share your feedback.

In a few short weeks, the team will begin to shift focus to what lies ahead with Debezium 2.7. This will be the last minor release of the Debezium 2.x release stream, which will include read-only incremental snapshots for other connectors, a new dedicated MariaDB source connector, and a MongoDB sink connector, just to name a few highlights. We will also be carrying over any work from 2.6 that we’re still working on but didn’t make it into that release.

And in closing, the last half of the year will be focusing on Debezium 3, where we’ll be moving to Java 17, work on new time-series source connectors, and more. Please take a moment and review our road map. If you have any suggestions or ideas, please feel free to get in touch with us on our mailing list or in our Zulip chat.

Until next time…​

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.