I’m pleased to announce the release of Debezium 1.4.0.Beta1!
This release includes support for distributed tracing, lowercase table and schema naming for Db2, specifying MySQL snapshot records as create or read operations, and enhancements to Vitess for nullable and primary key columns.
Overall, the community fixed 39 issues for this release. Let’s take a closer look at some of the highlights.
In a nutshell, distributed tracing is a pattern used to profile and monitor applications to allow quick identification of failures or performance concerns. Tracing works by having each component in a distributed process contribute a block of metadata called a "span". Each span contains unique details about that component’s unit of work. Typically a full distributed trace consists of a sequence of multiple spans.
Distributed tracing in Debezium is enabled by using the ActivateTracingSpan SMT:
"transforms": "tracing" "transforms.tracing.type": "io.debezium.transforms.tracing.ActivateTracingSpan"
The above configuration will lead to the emitted message header containing the tracing key/value pairs.
A blog post discussing the distributed tracing support in depth, including end-to-end tracing for microservices data exchange via the outbox pattern, will follow up shortly.
Also a number of bugs were fixed, e.g.:
DDL parser: Allow stored procedure variables in LIMIT clause DBZ-2692
Wrong mysql command in openshift dpeloyment docs DBZ-2746
long running transaction will be abandoned and ignored DBZ-2759
MS SQL Decimal with default value not matching the scale of the column definition cause exception DBZ-2767
Cassandra Connector doesn’t shut down completely DBZ-2768
MySQL Parser fails for BINARY collation shortcut DBZ-2771
PostgresConnectorIT.shouldResumeStreamingFromSlotPositionForCustomSnapshot is failing for wal2json on CI DBZ-2772
Connector configuration property "database.out.server.name" is not relevant for Logminer implementation but cannot be omitted DBZ-2801
CHARACTER VARYING mysql identifier for varchar is not supported in debezium DBZ-2821
try-with-resources should not be used when OkHttp Response object is returned DBZ-2827
EmbeddedEngine does not shutdown when commitOffsets is interrupted DBZ-2830
Rename user command parsing fails DBZ-2743
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.