This 84th edition of the Kafka Monthly Digest covers what happened in the Apache Kafka community in January 2025. This also marks the 7th anniversary of this blog series!
For last month’s digest, see Kafka Monthly Digest: December 2024.
Releases
There is currently 1 release in progress:
4.0.0
Progress on Kafka 4.0.0 continued. Code freeze happened on January 15. There is around 30 Jiras that are still planned for this release so the release date is likely to shift by a few weeks. You can find the release plan in the wiki.
Kafka Improvement Proposals
Last month, the community submitted 9 KIPs (KIP-1124 to KIP-1132). I'll highlight a few of them:
- KIP-1124: Providing a clear Kafka Client upgrade path: The Apache Kafka project aims at releasing a new version every 4 months. While the project recommends upgrading as soon as possible, organizations cannot always adopt the latest release. Kafka takes great care with compatibility so in most cases users can "jump" between releases, for example directly upgrading from 3.0 to 3.9. Unfortunately it's not possible to guarantee a direct upgrade between any 2 given versions always works. The goal of this KIP is to provide a public contract and guarantee which versions support direct upgrades.
- KIP-1127 Flexible Windows for Late Arriving Data: Kafka Streams supports grace periods for windows to accommodate for late arriving records. However there are scenarios where this does not work well. This KIP proposes a new type of windows that always computes the current window based on the current stream time instead of event timestamp. This means these windows are non overlapping, gap-less and fixed-size. The tradeoff of this new window type is that they should only be used when ordering of data is not required.
- KIP-1131: Controller-side monitoring for broker shutdown and startup: This KIP proposes adding new metrics to controllers to track the startup and shutdown of brokers. Proposed metrics include the number of brokers starting up or shutting down, as well as the longest times for both of these operations.
Community Releases
- Sarama 1.45: Sarama is a pure Golang Kafka client. This is new release requires at least Go 1.21. The Admin client now retries operations when it encounters coordinator errors.
- Librdkafka 2.8. Librdkafka is a Kafka client in C/C++. This is a maintenance release that fixes a handful of bugs in the consumer and around handling of TLS connections.
- kroxylicious 0.10: Kroxylicious is an open source pluggable framework for writing network proxies that understand the Apache Kafka protocol. This release introduces initial support for using Fortanix Data Security Manager as a Key Management System provider. It also bring improvements to record encryption and Server Name Indication (SNI) routing proxy configurations.
Blogs
I selected some interesting blog articles that were published last month:
To learn more about Kafka, visit Red Hat Developer's Apache Kafka topic page.