Release Notes for Debezium 2.7

All notable changes for Debezium releases are documented in this file. Release numbers follow Semantic Versioning.

Release 2.7.0.Alpha1 (April 25th 2024)

Kafka compatibility

This release has been built against Kafka Connect 3.7.0 and has been tested with version 3.7.0 of the Kafka brokers. See the Kafka documentation for compatibility with other versions of Kafka brokers.

Upgrading

Before upgrading any connector, be sure to check the backward-incompatible changes that have been made since the release you were using.

When you decide to upgrade one of these connectors to 2.7.0.Alpha1 from any earlier versions, first check the migration notes for the version you’re using. Gracefully stop the running connector, remove the old plugin files, install the 2.7.0.Alpha1 plugin files, and restart the connector using the same configuration. Upon restart, the 2.7.0.Alpha1 connectors will continue where the previous connector left off. As one might expect, all change events previously written to Kafka by the old connector will not be modified.

If you are using our container images, then please do not forget to pull them fresh from Quay.io.

Breaking changes

JDBC queries could hang indefinitely in case of database error communication. A configurable timeout was introduced to prevent the issue (DBZ-7616).

SQL Server connector by default processed all transactions available during each data poll. This could lead to out of memeory errors for databases with a large traffic. The default value was changed to limit the number of transactions to 500 (DBZ-7750).

New features

  • Support helm chart installation of debezium-operator DBZ-7116

  • Adding additional-conditions into Incremental Snapshot to MongoDB DBZ-7138

  • Document MongoDB connector inactivity pause and it’s performance implications DBZ-7147

  • Move MariaDB connector from MySQL to its own separate connector DBZ-7693

  • Mongodb Delete events should have _id in the payload DBZ-7695

  • Provide option to encode ordering metadata in each record DBZ-7698

  • Manage escaping when captured table are determined for snapshot DBZ-7718

  • Performance improve in KafkaRecordEmitter class DBZ-7722

  • Introduce RawToString transform for converting GUIDs stored in Oracle RAW(16) columns to Guid string DBZ-7753

  • Improve NLS character set support by including orai18n dependency DBZ-7761

  • Vitess Connector should have parity with MySQL’s time.precision.mode DBZ-7773

  • Document potential null values in the after field for lookup full update type DBZ-7789

  • Fix invalid date/timestamp check & logging level DBZ-7811

Fixes

  • Builtin database name filter is incorrectly applied only to collections instead of databases in snapshot DBZ-7485

  • After the initial deployment of Debezium, if a new table is added to MSSQL, its schema is was captured DBZ-7697

  • The test is failing because wrong topics are used DBZ-7715

  • Incremental Snapshot: read duplicate data when database has 1000 tables DBZ-7716

  • Handle instability in JDBC connector system tests DBZ-7726

  • SQLServerConnectorIT.shouldNotStreamWhenUsingSnapshotModeInitialOnly check an old log message DBZ-7729

  • Fix MongoDB unwrap SMT test DBZ-7731

  • Snapshot fails with an error of invalid lock DBZ-7732

  • Column CON_ID queried on V$THREAD is not available in Oracle 11 DBZ-7737

  • Redis NOAUTH Authentication Error when DB index is specified DBZ-7740

  • Getting oldest transaction in Oracle buffer can cause NoSuchElementException with Infinispan DBZ-7741

  • The MySQL Debezium connector is not doing the snapshot after the reset. DBZ-7743

  • MongoDb connector doesn’t work with Load Balanced cluster DBZ-7744

  • Align unwrap tests to respect AT LEAST ONCE delivery DBZ-7746

  • Exclude reload4j from Kafka connect dependencies in system testsuite DBZ-7748

  • Pod Security Context not set from template DBZ-7749

  • Apply MySQL binlog client version 0.29.1 - bugfix: read long value when deserializing gtid transaction’s length DBZ-7757

  • Change streaming exceptions are swallowed by BufferedChangeStreamCursor DBZ-7759

  • Sql-Server connector fails after initial start / processed record on subsequent starts DBZ-7765

  • Valid resume token is considered invalid which leads to new snapshot with some snapshot modes DBZ-7770

  • NO_DATA snapshot mode validation throw DebeziumException on restarts if snapshot is not completed DBZ-7780

  • DDL statement couldn’t be parsed DBZ-7788

  • old class reference in ibmi-connector services DBZ-7795

  • Documentation for Debezium Scripting mentions wrong property DBZ-7798

Other changes

  • Update documenation for embedded engine DBZ-7632

  • Implement basic JHM perf. tests for async engine DBZ-7633

  • Upgrade Debezium Quarkus Outbox to Quarkus 3.9.2 DBZ-7663

  • Move LogPositionValidator outside the JdbcConnection DBZ-7717

  • Fix mongodb image in system tests DBZ-7739

  • Refactor exporting to CloudEvents DBZ-7755

  • Use thread cap only for deault value DBZ-7763

  • Evaluate cached thread pool as the default option for async embedded engine DBZ-7764

  • Create JMH benchmark for engine record processing DBZ-7776

  • Improve processing speed of async engine processors which use List#get() DBZ-7777

  • Disable renovate in debezium-ui DBZ-7814