I’m very happy to announce the release of Debezium 1.3.0.CR1!
As we approach the final stretch of Debezium 1.3 Final,
we took this opportunity to add delegate converter support for the ByteBufferConverter
and introduce a debezium-scripting
module.
In addition, there’s also a range of bug fixes and quite a bit of documentation polish;
overall, not less than 15 issues have been resolved for this release.
ByteBufferConverter improvements
The ByteBufferConverter
is a converter that is used with the Outbox event router SMT to serialize an existing Avro payload column.
In a recent report (DBZ-2396),
the ByteBufferConverter
was unable to serialize events emitted from a connector that was configured to emit heartbeat, transaction metadata, or schema change events.
In order to improve the converter’s compatibility when these events are emitted,
the ByteBufferConverter
can now be configured to delegate event serialization to an additional converter.
This delegation is necessary so that heartbeat, transaction metadata, and schema change events (if applicable) can be serialized.
In order to use the Outbox event router SMT and the ByteBufferConverter
with these event types,
the connector configuration must be changed to reflect the delegate converter and its configurable options.
As an example to use the Apache Kafka JsonConverter
as a delegate with schemas disabled,
the following configuration would need to be included in the connector:
value.converter=io.debezium.converters.ByteBufferConverter
value.converter.delegate.converter.type=org.apache.kafka.connect.json.JsonConverter
value.converter.delegate.converter.type.schemas.enable=false
For more information about using the ByteBufferConverter
,
please see the Using Avro as the payload format section in the Outbox event router documentation.
Scripting module
In this release, the SMTs for content-based routing and filtering that both use JSR 223 scripting engines have been moved out of debezium-core
and into a separate artifact debezium-scripting
(DBZ-2549).
Any connector that previous used these SMTs requires that the new artifact be added to the plug-in directories for those connector(s).
When using the Debezium container image for Kafka Connect, set the environment variable ENABLE_DEBEZIUM_SCRIPTING
to true
to enable this feature.
This change is done to allow the scripting functionality to be available only in environments with an apppropriately secured Kafka Connect configuration interface.
Misc. Features and Bug Fixes
In addition, the community has completed the work on some other features and fixes, too:
As always, please refer to the release notes for the complete list of resolved issues as well as procedures for upgrading from earlier Debezium versions.
Thank you so much to Guillaume Smet and Grant Cooksey for their contributions to this release.
Outlook
Barring any unforeseen regressions and bug reports, Debezium 1.3 Final should be out next week. Until then, we’ll focus on some more polishing. The community-lead work towards a Debezium connector for Vitess is also making good progress, with an initial release of this new connector planned with Debezium 1.4 Alpha1 in late October.
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.