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