Skip to content

Commit 052f48f

Browse files
committed
3.5.0.Alpha1 announcement
Signed-off-by: Chris Cranford <chris@hibernate.org>
1 parent a2f0a42 commit 052f48f

File tree

2 files changed

+252
-1
lines changed

2 files changed

+252
-1
lines changed

_data/releases/3.5/3.5.0.Alpha1.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@ date: 2026-01-20
22
version: "3.5.0.Alpha1"
33
stable: false
44
summary: Debezium Quarkus Extension supports Db2; Debezium Quarkus extensions were relocated into a separate project; JBang catalog for Debezium Quarkus Extensions; Bounded query mode for Db2 connector
5-
# announcement_url:
5+
announcement_url: /blog/2026/01/20/debezium-3-5-alpha1-released/
Lines changed: 251 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,251 @@
1+
---
2+
layout: post
3+
title: Debezium 3.5.0.Alpha1 Released
4+
date: 2026-01-20
5+
tags: [ releases, mongodb, mysql, mariadb, postgres, sqlserver, cassandra, oracle, db2, vitess, outbox, spanner, jdbc, informix, ibmi, cockroachdb ]
6+
author: ccranfor
7+
extraClasses: release-v2
8+
---
9+
10+
As we begin a new year, the Debezium team is pleased to announce a new release stream for Debezium, **3.5.0.Alpha1**.
11+
This release includes a variety of first pass improvements and changes across the portfolio, including performance optimizations for Db2, updates to Debezium's Quarkus extensions, Debezium Server and Platform.
12+
13+
+++<!-- more -->+++
14+
15+
Let's take a few moments to dive into all the details.
16+
17+
[id="new-features-and-improvements"]
18+
== New features and improvements
19+
20+
=== Debezium for Db2
21+
22+
==== Control maximum timespan for change query
23+
24+
When reading the changes in a very active database with a large numbers of records, this can trigger query-resource limits such as CPU time.
25+
This can lead to the query being terminated prematurely, leading to a connector crash.
26+
27+
To address this concern, Debezium's Db2 connector introduces a new `straeming.query.timestamp.seconds` configuration property.
28+
The default of `0` does not apply any timestamp restriction on the query, so it will continue to operate as it does today.
29+
So for most users, this is a net-zero change (https://github.com/debezium/dbz/issues/1466[debezium/dbz#1466]).
30+
31+
For environments where query-resource limits are an issue, setting this value to anything greater than `1` specifies the maximum number of seconds for a streaming query to include changes for, noting that a value of `1` is not permitted.
32+
It's recommended for most environments that require this behavior to start with `120` seconds and adjust as needed.
33+
34+
=== Debezium for MySQL
35+
36+
==== No longer fails for `zero-year` dates
37+
38+
MySQL can be configured to support the storage of dates using zero year format, e.g. `0000-07-15`.
39+
When such values are stored in the database, the MySQL Binlog Client will fail with an invalid date/time exception, which will block the connector from consuming further changes.
40+
41+
Debezium will now allow zero-year values at the Binlog Client level to be passed to the Debezium MySQL connector without issue (https://github.com/debezium/dbz/issues/1499[debezium/dbz#1499]).
42+
43+
=== Debezium for Oracle
44+
45+
==== Dynamic Archive Destination Support
46+
47+
When an Oracle primary server fails over to a standby server, it's very likely that Debezium has not read all the changes from the transaction logs on the primary when the failover occurs.
48+
As a result, when the standby is promoted to the primary, it will begin to write changes to a new archive destination.
49+
50+
When Debezium reconnects to the newly promoted primary, Debezium will attempt to locate where it left off, and fail to start.
51+
This failure to start issue is a result of the fact that the primary changes that were not consumed by Debezium exist in the archive destination specific to the standby system being in standby-mode, not primary-mode.
52+
53+
To solve this issue, the `archive.destination.name` configuration property can be supplied a series of comma-separated archive destination names.
54+
When multiple names are supplied, Debezium will gather logs across all configured destinations and perform a deduplication pass by redo thread and log sequence pairs.
55+
This deduplication pass will prefer logs in earlier destinations from logs in later destinations that have the same thread and sequence pair.
56+
57+
With this change, Debezium is significantly more fault-tolerant during a primary to standby failover and recovers without the need for a snapshot, as long as there is no data loss at the transaction log level between the two systems (https://github.com/debezium/dbz/issues/1246[debezium/dbz#1246]).
58+
59+
=== Debezium Quarkus Extensions
60+
61+
==== Extensions relocated
62+
63+
One of the biggest changes in Debezium 3.5 is the relocation of the Debezium Quarkus extensions, which includes both the connector and outbox extensions.
64+
All of Debezium's Quarkus-related modules are now found in the https://github.com/debezium/debezium-quarkus[Debezium Quarkus] repository.
65+
66+
[IMPORTANT]
67+
====
68+
All artifacts previously released in Debezium 3.4 using the `quarkus-debezium-XYZ` naming convention have been renamed.
69+
Please be sure to update your dependencies to reflect the artifacts named as `debezium-quarkus-XYZ`.
70+
The dependency `groupId` was unchanged.
71+
====
72+
73+
[NOTE]
74+
====
75+
In a future build, the Debezium Quarkus Extensions will be unbundled from the main Debezium release pipeline, and instead will be released with a similar cadence to the upstream https://quarkus.io[Quarkus] project.
76+
This will provide an improved parity between extension changes and Quarkus releases.
77+
====
78+
79+
==== Support for Db2
80+
81+
The Debezium Quarkus extensions also now include an implementation for Debezium's Db2 connector (https://github.com/debezium/dbz/issues/1447[debezium/dbz#1447]).
82+
In a Quarkus application that uses Db2, developers can now respond to real-time changes by simply including the new Db2 module:
83+
84+
.Debezium Db2 extension maven coordinates
85+
[source,xml]
86+
----
87+
<dependency>
88+
<groupId>io.debezium.quarkus</groupId>
89+
<artifactId>debezium-quarkus-db2</artifactId>
90+
<version>v3.5.0.Alpha1</version>
91+
</dependency>
92+
----
93+
94+
==== JBang Support
95+
96+
Debezium introduces JBang support by introducing an easy way to integrate Debezium's Quarkus extensions (https://github.com/debezium/dbz/issues/1464[debezium/dbz#1464]).
97+
This support requires Java 21 or later, JBang 0.132.1 or later, and a containerized environment for local services.
98+
99+
To get started quickly, the https://github.com/debezium/jbang-catalog[Debezium JBang catalog] needs to be added.
100+
101+
++++
102+
<script src="https://asciinema.org/a/770262.js" id="asciicast-770262" async="true"></script>
103+
++++
104+
105+
There are templates available for the following data sources: `postgres`, `mysql`, `mongodb`, `sqlserver`, `mariadb`.
106+
There will be additional data sources added over time.
107+
108+
=== Debezium Platform
109+
110+
==== Support for HTTPS-based URLs
111+
112+
Users who may be using HTTPS via Traefik, ALB, or similar tooling, the current Helm chart setup lead to a series of errors when using secure connections.
113+
To provide TLS-based connectivity, the following configuration options were introduced (https://github.com/debezium/dbz/issues/36[debezium/dbz#36]):
114+
115+
.New Helm charts configuration properties
116+
[cols="30%,70%,20%"]
117+
|===
118+
|Property |Description |Default
119+
120+
|`domain.name`
121+
|Represents the domain used as ingress host
122+
|`""`
123+
124+
|`ingress.enabled`
125+
|Enable ingress resource for conductor/stage
126+
|`true`
127+
128+
|`ingress.className`
129+
|Optional ingress class name
130+
|`"""`
131+
132+
|`ingress.annotations`
133+
|Extra ingress annotations
134+
|`{}`
135+
136+
|`ingress.tls.enabled`
137+
|Enable TLS section on ingress
138+
|`false`
139+
140+
|`ingress.tls.secretName`
141+
|Secret name used when TLS is enabled
142+
|`""`
143+
144+
|===
145+
146+
There are also some deprecated configuration properties.
147+
148+
.Deprecated Helm charts configuration properties
149+
[cols="30%,70%,20%"]
150+
|===
151+
|Property |Description |Default
152+
153+
|`domain.url`
154+
|This was replaced by `domain.name`
155+
|`""`
156+
157+
|===
158+
159+
=== Debezium Server
160+
161+
==== Jetstream retries on failures
162+
163+
Currently, when Debezium Server publishes to NATS and the queue is full due to some limitations like message or byte limits, Debezium Server currently throws an exception and terminates.
164+
In order to make integration with NATs more fault tolerant, the following additional configuration options have been introduced, allowing the Jetstream NATS adapter to handle retries natively (https://github.com/debezium/dbz/issues/1494[debezium/dbz#1494]):
165+
166+
.New configuration property for NATS Jetstream adapter
167+
[cols="30%,70%,20%"]
168+
|===
169+
|Property |Description |Default
170+
171+
|`sync.retries`
172+
|Specifies the number of retries
173+
|`5`
174+
175+
|`sync.retry.interval.ms`
176+
|The number of milliseconds to wait between retries.
177+
|`1000`
178+
179+
|`sync.retry.max.interval.ms`
180+
|The maximum number of milliseconds to wait between retries.
181+
|`60000`
182+
183+
|`sync.retry.backoff.multiplier`
184+
|The back-off multiplier to scale the retry interval over attempts.
185+
|`2.0`
186+
187+
|===
188+
189+
[NOTE]
190+
====
191+
All configuration options should be prefixed with `debezium.sink.nats-jetstream`.
192+
====
193+
194+
[id="other-changes"]
195+
== Other changes
196+
197+
* Recovery private redo threads can lead to LogMiner failures https://github.com/debezium/dbz/issues/40[debezium/dbz#40]
198+
* On adding "Signalling collection name" in the Form editor it should by preserved in the smart editor [DBZ-9080] https://github.com/debezium/dbz/issues/1226[debezium/dbz#1226]
199+
* Update Debezium Platform doc with recent features [DBZ-9319] https://github.com/debezium/dbz/issues/1381[debezium/dbz#1381]
200+
* Platform: UI Bugs [DBZ-9559] https://github.com/debezium/dbz/issues/1416[debezium/dbz#1416]
201+
* Deleting pipeline does not work when pressing enter after typing name [DBZ-9687] https://github.com/debezium/dbz/issues/1436[debezium/dbz#1436]
202+
* Oracle connector fails when user creates a table with a column named "override" https://github.com/debezium/dbz/issues/1461[debezium/dbz#1461]
203+
* Debezium-Platform: Fix The grep notification feature in the pipeline logs https://github.com/debezium/dbz/issues/1465[debezium/dbz#1465]
204+
* remove unnecessary jbang main() https://github.com/debezium/dbz/issues/1467[debezium/dbz#1467]
205+
* introduce a factory for `io.debezium.runtime.Debezium` https://github.com/debezium/dbz/issues/1469[debezium/dbz#1469]
206+
* Debezium Server: HTTP sink, JWTAuthenticatorTests fail https://github.com/debezium/dbz/issues/1470[debezium/dbz#1470]
207+
* Debezium issue on connect to IBMi https://github.com/debezium/dbz/issues/1473[debezium/dbz#1473]
208+
* Oracle OLR adapter crashes with auto-commit error when encountering unknown tables https://github.com/debezium/dbz/issues/1480[debezium/dbz#1480]
209+
* Impossible to run docker image for testing purpose with `docker-maven-plugin` and docker API version > `1.44` https://github.com/debezium/dbz/issues/1481[debezium/dbz#1481]
210+
* Cassandra connector return wrong value for DATE columns https://github.com/debezium/dbz/issues/1486[debezium/dbz#1486]
211+
* RedisOffsetBackingStore: Race condition causes infinite NullPointerException loop on reconnect leading to unrecoverable state https://github.com/debezium/dbz/issues/1488[debezium/dbz#1488]
212+
* pg_stat_replication.flush_lsn can move backwards when lsn.flush.mode=connector_and_driver https://github.com/debezium/dbz/issues/1489[debezium/dbz#1489]
213+
* JDBC Sink Connector fails to insert JSON data into MariaDB https://github.com/debezium/dbz/issues/1492[debezium/dbz#1492]
214+
* Refactor OracleConnection auto-commit setup as an initial Operation https://github.com/debezium/dbz/issues/1496[debezium/dbz#1496]
215+
* Connector cannot handle uncompressed transaction payloads beyond 2GB https://github.com/debezium/dbz/issues/1503[debezium/dbz#1503]
216+
* MySQL: New charset not taken into account https://github.com/debezium/dbz/issues/1504[debezium/dbz#1504]
217+
* Debezium Platrform: Update the source and destination flow to get the connections details in smart editor. https://github.com/debezium/dbz/issues/1506[debezium/dbz#1506]
218+
* add `debezium-quarkus` project in `debezium-platform-conductor` pipeline https://github.com/debezium/dbz/issues/1507[debezium/dbz#1507]
219+
* Add debezium platform conductor into core CI https://github.com/debezium/dbz/issues/1520[debezium/dbz#1520]
220+
* DCO must be checked only on pull request https://github.com/debezium/dbz/issues/1524[debezium/dbz#1524]
221+
* ReselectPostProcessor does not account for CustomConverter(s) https://github.com/debezium/dbz/issues/1527[debezium/dbz#1527]
222+
* Thread-safety issue in MongoDB connector causes incorrect source.collection metadata during parallel snapshot https://github.com/debezium/dbz/issues/1531[debezium/dbz#1531]
223+
224+
== Summary
225+
226+
In total, https://github.com/orgs/debezium/projects/5/views/6?query=sort%3Aupdated-desc+is%3Aopen&filterQuery=status%3AReleased+iteration%3A3.5.0.Alpha1[44 issues] were resolved in Debezium 3.5.0.Alpha1.
227+
The list of changes can also be found in our https://debezium.io/releases/3.4[release notes].
228+
229+
A big thank you to all the contributors from the community who worked diligently on this release:
230+
+
231+
Anton Repin,
232+
https://github.com/abusquets[Alexandre Busquets],
233+
https://github.com/atorik[Atsushi Torikoshi],
234+
https://github.com/Naros[Chris Cranford],
235+
https://github.com/cjbooms[Conor Gallagher],
236+
https://github.com/kmos[Giovanni Panice],
237+
https://github.com/haydarmiezanie[Haydar],
238+
https://github.com/haydarmiezanie[Haydar Miezanie Abdul Jamil],
239+
https://github.com/haydarmiezanie[Haydar] Miezanie Abdul Jamil,
240+
https://github.com/indraraj[Indra Shukla],
241+
https://github.com/jpechane[Jiri Pechanec],
242+
https://github.com/MV-GH[Maarten Vercruysse],
243+
https://github.com/mfvitale[Mario Fiore Vitale],
244+
https://github.com/mrtworo[Mateusz Tworek],
245+
https://github.com/mhejnas[Matt Hejnas],
246+
https://github.com/koleo[Nicolas Payart],
247+
https://github.com/ochedru[Olivier Chédru],
248+
https://github.com/rophy[Rophy Tsai],
249+
https://github.com/rudi-bruchez[Rudi Bruchez],
250+
https://github.com/SreedevT[sreedev],
251+
https://github.com/vjuranek[Vojtech Juranek]

0 commit comments

Comments
 (0)