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