chia7712 commented on code in PR #928: URL: https://github.com/apache/kafka-site/pull/928#discussion_r4351034539
########## content/en/blog/releases/ak-4.4.0.md: ########## @@ -0,0 +1,104 @@ +--- +date: 2026-10-22 +title: Apache Kafka 4.4.0 Release Announcement +linkTitle: AK 4.4.0 +author: Omnia Ibrahim +aliases: + - /blog/2026/10/22/apache-kafka-4.4.0-release-announcement/ +--- + +<!-- + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +We are proud to announce the release of Apache Kafka® 4.4.0. This release contains many new features and improvements. This blog post will highlight some of the more prominent ones. For a full list of changes, be sure to check the [release notes](https://archive.apache.org/dist/kafka/4.4.0/RELEASE_NOTES.html). + +With 19 KIPs and over 963 commits since 4.3.0, this release introduces many new features, improvements and bug fixes to all the components. + +See the [Upgrading to 4.4](https://kafka.apache.org/documentation.html#upgrade_4_4_0) section in the documentation for the list of notable changes and detailed upgrade steps. + +## Deprecation Notices +* [KIP-1232: Deprecate broker.id config](https://cwiki.apache.org/confluence/spaces/KAFKA/pages/393677342/KIP-1232+Deprecate+broker.id+config) + Deprecates the `broker.id` broker configuration. + +* [KIP-1200: Deprecate ClientQuotaCallback#updateClusterMetadata](https://cwiki.apache.org/confluence/spaces/KAFKA/pages/373887083/KIP-1200+Deprecate+ClientQuotaCallback+updateClusterMetadata) + Deprecates the `ClientQuotaCallback#updateClusterMetadata` method and will be removed in Kafka 5.0. Custom implementations of `ClientQuotaCallback` no longer need to override this method, as a default no-op implementation is now provided. + +* [KIP-1301: Deprecate Yammer-based metrics in GroupCoordinatorMetrics](https://cwiki.apache.org/confluence/spaces/KAFKA/pages/406623591/KIP-1301+Deprecate+Yammer-based+metrics+in+GroupCoordinatorMetrics) + Deprecates the remaining Yammer-based classic-group metrics in `GroupCoordinatorMetrics` (NumGroups, NumOffsets, NumGroupsPreparingRebalance, NumGroupsCompletingRebalance, NumGroupsStable, NumGroupsDead), replacing them with equivalent Kafka Metrics gauges registered under the `kafka.server:type=group-coordinator-metrics` MBean. + +## Kafka Broker, Controller, Producer, Consumer and Admin Client +* [KIP-1170: Unify cluster metadata bootstrapping](https://cwiki.apache.org/confluence/x/ZYoEFQ) + Storage directories formatted by the `kafka-storage` tool are no longer forward-compatible: a broker must now be the same version as, or newer than, the `kafka-storage` tool that formatted its directory, regardless of the `--release-version` chosen at format time. + +* [KIP-1191: Dead-letter queues for share groups](https://cwiki.apache.org/confluence/x/fApJFg) + Share groups now support dead-letter queues. Records that are released beyond the max delivery count, or rejected by the share consumer, become eligible for the DLQ once the `share.version` feature is upgraded to 2. DLQ behavior is configured dynamically via `errors.deadletterqueue.topic.name`, `errors.deadletterqueue.auto.create.topics.enable`, `errors.deadletterqueue.group.enable`, `errors.deadletterqueue.topic.name.prefix`, and `errors.deadletterqueue.copy.record.enable`. + +* [KIP-909: Allow Clients to Rebootstrap Upon Failed DNS Resolution](https://cwiki.apache.org/confluence/x/MJtbDg) + Adds a new client configuration, `bootstrap.resolve.timeout.ms`, controlling how DNS resolution of `bootstrap.servers` is performed. The default of `0` preserves the historical synchronous behavior; a positive value opts into asynchronous bootstrap resolution, where the client constructor returns immediately and failures surface later as `BootstrapResolutionException`. This is an evolving feature and may change in a minor release. Kafka Streams and Kafka Connect do not yet support asynchronous bootstrap resolution. + +* [KIP-1265: Mechanism for automatic detection of internal API usage](https://cwiki.apache.org/confluence/display/KAFKA/KIP-1265%3A+Mechanism+for+automatic+detection+of+internal+API+usage) + Introduces a build-time `api-checker` mechanism, based on explicit `@InterfaceAudience` annotations, that fails the build if an internal class is imported by or exposed through a public API — preventing internal classes from unintentionally leaking into Kafka's public surface. + +* [KIP-1319: Align TxnOffsetCommit API with OffsetCommit API](https://cwiki.apache.org/confluence/spaces/KAFKA/pages/406622772/KIP-1319+Align+TxnOffsetCommit+API+with+OffsetCommit+API) + Introduces `TxnOffsetCommit` v6, bringing the transactional offset commit API to parity with `OffsetCommit`: it now carries topic IDs instead of topic names, renames `GenerationId` to `GenerationIdOrMemberEpoch`, and surfaces granular error codes such as `GROUP_ID_NOT_FOUND`, `STALE_MEMBER_EPOCH`, and `UNKNOWN_TOPIC_ID` instead of collapsing them into `ILLEGAL_GENERATION`. + +* [KIP-1312: Support unregistering controllers](https://cwiki.apache.org/confluence/spaces/KAFKA/pages/406623954/KIP-1312+Support+unregistering+controllers) + Controllers can now be unregistered from the cluster metadata. A new `kafka-cluster.sh unregister-controller` command and a `--unregister` flag on `kafka-metadata-quorum.sh remove-controller` are provided, backed by the new `Admin#unregisterController` API and `UnregisterController` RPC. This introduces the error code `CONTROLLER_ID_NOT_REGISTERED` (136) and requires metadata version `4.4-IV2`. + +* [KIP-1220: Add an api-versions command to kafka-cluster.sh](https://cwiki.apache.org/confluence/x/-QkbFw) + The `kafka-cluster.sh` tool now provides an `api-versions` command to display the API versions supported by the brokers or controllers, accepting both `--bootstrap-server` and `--bootstrap-controller`. As a result, `kafka-broker-api-versions.sh` is deprecated and will be removed in the next major release; use `kafka-cluster.sh api-versions` instead. + +* [KIP-1241: Reduce tiered storage redundancy with delayed upload](https://cwiki.apache.org/confluence/x/A4LMFw) + Introduces the `remote.copy.lag.bytes` and `remote.copy.lag.ms` configs, with corresponding broker-level configurations, allowing tiered storage redundancy to be reduced with delayed upload. + +* [KIP-1242: Detect and handle misrouted client connections](https://cwiki.apache.org/confluence/x/W4LMFw) + When clients connect to the cluster, they now include cluster and node information to enable detection and handling of misrouted connections. + +* [KIP-1291: Expose additional Linux I/O metrics via JMX](https://cwiki.apache.org/confluence/x/co48G) + The Linux I/O metrics collector now exposes all 7 fields from `/proc/self/io` via JMX, adding `linux-disk-rchar`, `linux-disk-wchar`, `linux-disk-syscr`, `linux-disk-syscw`, and `linux-disk-cancelled-write-bytes` alongside the existing read/write byte metrics. These let operators calculate page-cache hit ratios, detect write amplification, identify inefficient syscall patterns, and monitor log-compaction I/O activity. + +* [KIP-1299: Control key distribution in kafka-producer-perf-test](https://cwiki.apache.org/confluence/x/XpQ8G) + The `kafka-producer-perf-test.sh` tool now supports `--record-key-range`, `--key-distribution`, and `--random-seed` options to control the distribution of record keys. Use `--key-distribution range` for sequential (round-robin) key assignment or `random` for random key selection, with `--random-seed` enabling reproducible benchmark runs. + +* [KIP-1323: Initialize share group offsets from a file](https://cwiki.apache.org/confluence/x/vY0mGQ) + The `kafka-share-groups.sh` tool can now be used to initialize share group offsets from a file, enabling a share group to be initialized from the committed offsets of a consumer group. + +## Kafka Streams +* [KIP-1340: Expose Both Mapped Key and Stream Key in Streams-GlobalKTable Joins](https://cwiki.apache.org/confluence/display/KAFKA/KIP-1340%3A+Expose+Both+Mapped+Key+and+Stream+Key+in+Streams-GlobalKTable+Joins) + Adds a new `ValueJoinerWithStreamAndMappedKey` joiner interface and new `KStream#join`/`leftJoin` overloads for KStream-GlobalKTable joins, giving users access to both the mapped join key and the original stream record key without having to recompute it. The existing `ValueJoinerWithKey`-based overloads are deprecated but unchanged in behavior. + +* [KIP-1331: Streams Group Topology Description Plugin](https://cwiki.apache.org/confluence/display/KAFKA/KIP-1331%3A+Streams+Group+Topology+Description+Plugin) + Lets brokers record a human-readable description of a Streams group's processing topology via a pluggable backend. When `group.streams.topology.description.plugin.class` is set, Kafka Streams clients automatically push a description equivalent to `Topology#describe()` to the group coordinator, retrievable via `Admin#describeStreamsGroups` or `kafka-streams-groups.sh --describe --topology` — without access to the application's source code. + +* [KIP-1357: Broker-side custom task assignors for Streams groups](https://cwiki.apache.org/confluence/x/NoSnGQ) + Streams groups now support broker-side custom task assignors, registered via the new broker configuration `group.streams.assignors` and selected per group with the new group configuration `streams.assignor.name`. + +## Kafka Connect +* [KIP-1209: Add configuration to control internal topic creation in Kafka Connect](https://cwiki.apache.org/confluence/display/KAFKA/KIP-1209%3A+Add+configuration+to+control+internal+topic+creation+in+Kafka+Connect) + Kafka Connect distributed workers now support the `internal.topics.automatic.creation.enable` configuration (default `true`). When set to `false`, Connect will not automatically create its internal topics (offset, config, status, and connector-specific offset topics) and instead fails at startup if any are missing. A new `connect-internal-topics.sh` tool is provided for creating these topics manually. + +## Summary + +Ready to get started with Apache Kafka 4.4.0? Check out all the details in the [upgrade notes](https://kafka.apache.org/documentation.html#upgrade_4_4_0) and the [release notes](https://archive.apache.org/dist/kafka/4.4.0/RELEASE_NOTES.html), and [download](https://kafka.apache.org/downloads) Apache Kafka 4.4.0. + +<!-- TODO: Confirm the contributor list below. It is the RAW `git shortlog -sn 4.3.0..4.4.0` + output (152 names) and still contains duplicate identities (e.g. Jiayao Sun / Jiayáo Sun, + gabriellafu / gabriellefu / gabriellefu, OmniaGM / Omnia Ibrahim, email-only handles like + majialong, and dependabot[bot]). `release.py release-email` normalises these — run it and + reconcile the two lists before publishing. Update the count and the "(and N AIs)" tally. --> +This was a community effort, so thank you to everyone who contributed to this release, including all our users and our 152 contributors: Review Comment: My AI generated another list that includes the reviewers and AIs :) ``` This was a community effort, so thank you to everyone who contributed to this release, including all our users and our 171 contributors (and 8 AIs): 조형준, Abhijeet Kumar, Abhinav Dixit, Adam Horky, Adam Souquières, Aditya Kousik, akhil-sabu-ibm, Alan Lau, Alieh Saeedi, Alyssa Huang, amandayclee, Amir Sarabadani, Anastasia Vela, Andrew Schofield, Andy Huang, Angelo R., Anton Liauchuk, Apoorv Mittal, Aravind Reveendran, Arnab Nandy, Arpit Goyal, Arpit Jain, ashwinpankaj, Atharv Chavan, averemee-si, Avishek Das, Bill Bejeck, Bolin Lin, Brian Sang, Chang-Chi Hsu, Charlie Zhang, Chia-Ping Tsai, Chia-Yi Chiu, ChickenchickenLove, Chih-Yuan Chien, Chris Egerton, Christo Lolov, Claude Fable 5, Claude Opus 4.6, Claude Opus 4.7, Claude Opus 4.8, Claude Opus 5.5, Claude Sonnet 4.6, Claude Sonnet 5, CoderBruis, Copilot, Daeho Kwon, Daniel Tschinder, David Jacot, David Simon, Davide Armand, Dejan Stojadinović, Derek Ko, Diya Hussein, Dmitry Werner, dongjiao, Dongnuo Lyu, Dpk376, Edoardo Comar, Eduwer Camacaro, Eric Chang, Evan Zhou, Fatorin, Federico Valeri, Gabriel Dutra, gabriellefu, Ganesh Manchi, Gaurav Narula, Gavin Wang, Gergel y Harmadas, Gimin Kim, gomudayya, Greg Harris, Gyeongwon Do, Hana, Hari Mohan, Hector Geraldino, Igor Soarez, Ivan Malutin, Ivan Yurchenko, Izzy Harker, Jakub Scholz, Jess668, Jian, Jiayao Sun, Joanna-D, Jonah Hooper, Jose Ignacio Gil Jaldo, José Armando García Sancio, Julien Brunet, Jun Rao, junvelop, Justine Olshan, Kai Jay Tu, Kamal Chandraprakash, Kartikay Dubey, KC.H, Ken Huang, Kenan Adel, Kevin Wu, Kirk True, kkgounder95-code, Kondrat Bertalan, Kuan-Po Tseng, Lan Ding, LeiXiaoGao, Lianet Magrans, Lucas Brutschy, Lucas Ma, Lucy Liu, Luke Chen, majialong, Manikumar Reddy, mannoopj, Marie-Laure Momplot, MarkLee131, Maros Orsak, Matthias J. Sax, Mickael Maison, Ming-Yen Chung, Mingi Cho, minjcho, Mirko Alicastro, Murali Basani, Nandini Singhal, Nick Guo, Nick Telford, Nikita Shupletsov, Nikolaus Schuetz, Nilesh Kumar, Nishant Kumar, Omnia Ibrahim, Paolo Patierno, Park Jiwon, Parker Chang, PoAn Yang, Prabhash Kumar, Prakash Tanaji, Pratyaksh Sharma, Rajarshi Misra, red-flames, R ion Williams, Ritika Reddy, Ritikj55, RonGamzu, Russole Chen, S.Y. Wang, Sahil Devgon, Sanskar Jhajharia, Sean Quah, Sebastien Viale, Sepuri Sai Krishna, Shay Elkin, Shekhar Prasad Rajak, Shivsundar R, Siddhartha Devineni, Srinivas Akhil Mallela, sstremler, stroller.fu, subbudvk, Sushant Mahajan, Taeik Lim, TaiJuWu, Tamas Kornai, TengYao Chi, Tommi Vainikainen, Truc Nguyen, Uladzislau Blok, varunv-cflt, Viktor Somogyi-Vass, winfriedgerlach, Xi, YANG-SYUAN CHOU, yangxuze, Yu-Chia Ma, Yunchi Pang, Zheguang Zhao, Zhiyan Tang, zoo-code ``` -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
