This 91st edition of the Kafka Monthly Digest covers what happened in the Apache Kafka community in August 2025.
For last month’s digest, see Kafka Monthly Digest: July 2025.
Releases
There are two releases in progress:
4.1.0
The release process for 4.1.0 continued. A few issues with RC1 were found (state-change log file name, ELR documentation), so I published RC2 on August 5. Unfortunately a regression in Streams was found: KAFKA-19638. I published the fourth release candidate, RC3, on August 27. The vote passed so the release will be announced in the next few days. You can find the release plan in the wiki.
4.0.1
To include the state-change log file fix as in 4.1.0, the community decided to do another RC. Christo Lolov published RC1 on August 19. The vote is currently on-going. The release plan is available in the wiki.
Kafka Improvement Proposals
Last month, the community submitted 8 KIPs (KIP-1203 to KIP-1210). I'll highlight a few of them:
- KIP-1204: MetadataQuorumCommand describe to include CommittedVoters: When describing the KRaft quorum it's possible to see voters that are not actually committed yet. This can happen for example when a new voter is being added. For a short duration, the voter is written in the metadata log on the controller but not yet replicated to the majority of the quorum members. This KIP proposes adding a new field,
CommittedVoters
, toDescribeQuorumResponse
to only include voters that are actually committed and thus guaranteed to be valid.
- KIP-1207: Fix anomaly of JMX metrics RequestHandlerAvgIdlePercent in kraft combined mode: To monitor the load on brokers, administrators often rely on the
kafka.server:type=KafkaRequestHandlerPool,name=RequestHandlerAvgIdlePercent
metric. It indicates the percentage of time the request handler threads are idle with a value between 0.0 and 1.0. However when running in combined mode the metric combines the broker and controller load and thus ranges from 0.0 to 2.0. The KIP proposes introducing new metrics to separate the broker and controller load and return to values between 0.0 and 1.0.
- KIP-1210: Disallow Configurations at the Broker Level: Some log and replication configurations can be set at the broker or cluster level. In most cases, if set at the broker level, they need to be set to the same value, as brokers with different values can lead to replication and consistency issues. This KIP aims at tidying this behavior by ensuring these configurations can only set at the cluster level so they are consistent across all brokers.
Community Releases
- Sarama 1.46: Sarama is a pure Golang Kafka client. With this new version, Sarama now uses the ApiVersions API to select the protocol version to use with each broker. It also optimizes how metadata is refreshed by avoiding having multiple in-flight requests to a single broker at the same time.
- kroxylicious 0.15.0: Kroxylicious is an open source pluggable framework for writing network proxies that understand the Apache Kafka protocol. The project released 0.14 and 0.15 this month. 0.14 introduced a new authentication API that allows plugins to access certification and SASL details for all connections. 0.15 improves bootstrapping when the proxy is configured with multiple bootstrap server addresses.
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.