It is my pleasure to announce the immediate release of Debezium 2.3.3.Final.

This release includes several bug fixes to address regressions, stability, documentation updates. If you are currently looking to upgrade to the Debezium 2.3.x release stream, we highly recommend you consider using this release. Let’s take a quick look into the regressions and bug fixes.

Breaking changes

There is currently one breaking change in this release, where the behavior of Debezium 2.3.3.Final changes from the previous release of Debezium 2.3.2.Final. If you are upgrading from Debezium 2.3.2.Final or any prior version, please review the following breaking changes for details.

Oracle connector SCN-based metrics

Oracle tracks a variety of system change number, often called SCN, values in its JMX metrics including OffsetScn, CurrentScn, OldestScn, and CommittedScn. These SCN values are numeric and can often exceed the upper bounds of a Long data type, and so Debezium has traditionally exposed these values as String s.

Unfortunately, tooling such as Grafana and Prometheus do not work with String -based values, and it has been raised on several occasions that the community would like to be able to view these values from metrics gathering frameworks. With Debezium 2.3.3.Final or later, there is a small behavior change with the these JMX metrics as they are no longer exposed as String values but instead are now exposed as BigInteger values.

This change in behavior allows tooling such as Grafana and Prometheus to now scrape these values from the JMX beans automatically for reporting and observability stacks.

If you were previously gathering these values for other purposes, be aware they’re no longer string-based and should be interpreted as BigInteger numerical values moving forward.

Other fixes & improvements

There are several bugfixes and stability changes in this release, some noteworthy are:

  • Support PostgreSQL coercion for UUID, JSON, and JSONB data types DBZ-6589

  • Debezium 2.3.0.Final Missing Kafka Channel Documentation DBZ-6688

  • Debezium crashes on parsing MySQL DDL statement (specific JOIN) DBZ-6724

  • ExtractNewDocumentState for MongoDB ignore previous document state when handling delete event’s with REWRITE DBZ-6725

  • Missing or misspelled IDs result in downstream build errors DBZ-6754

  • When using pgoutput in postgres connector, (+/-)Infinity is not supported in decimal values DBZ-6758

  • Outbox transformation can cause connector to crash DBZ-6760

  • Postgres tests for toasted byte array and toasted date array fail with decoderbufs plugin DBZ-6767

  • MongoDB New Document State Extraction: nonexistent field for add.headers DBZ-6774

  • Notifications and signals leaks between MBean instances when using JMX channels DBZ-6777

  • Dbz crashes on parsing MySQL DDL statement (SELECT 1.;) DBZ-6780

  • Dbz crashed on parsing MySQL DDL statement (SELECT 1 + @sum:=1 AS ss;) DBZ-6794

  • MySQL DDL parser - REPEAT function not accepted DBZ-6803

  • Dbz crashes on DDL statement (non Latin chars in variables) DBZ-6821

  • Not trim the default value for the BIGINT and SMALLINT types when parsing MySQL DDL DBZ-6824

  • Make partial and multi-response transactions debug level logs DBZ-6830

  • Oracle test shouldContinueToUpdateOffsetsEvenWhenTableIsNotChanged fails with NPE DBZ-6860

  • Streaming aggregation pipeline broken for combination of database filter and signal collection DBZ-6867

Outlook & What’s Next?

As the team continues active development of Debezium 2.4, I would expect another maintenance release of Debezium 2.3 later this mont, barring any reported regressions or bugs.

In addition, the Debezium Community Event’s agenda and date will be published this week, so keep an eye out for that news. And finally, we’ll be presenting at Kafka Summit 2023 (aka Current 2023) later this upcoming month. If you’re planning to attend and would like to ask the experts, be sure to get in touch with me or anyone on the team and we can plan to meet up and discuss anything related to Debezium and CDC.

As always, if you have any ideas or suggestions, you can also get in touch with us on the mailing list or our chat.

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.