This 58th edition of the Kafka Monthly Digest covers what happened in the Apache Kafka community in November 2022.
For last month’s digest, see Kafka Monthly Digest: October 2022.
There are currently two releases in progress: 3.4.0 and 3.3.2.
The release process for 3.4.0 continued. KIP freeze happened on November 16 and was followed by feature freeze on November 30. The next milestone is code freeze and it is currently targeted for December 7. You can find the release plan with all the details in the wiki.
On November 16, Chris Egerton volunteered to run the 3.3.2 bugfix release. You can find all details in the release plan in the wiki.
Last month, the community submitted 12 KIPs (KIP-881 to KIP-892). I'll highlight a few of them:
KIP-881: Rack-aware Partition Assignment for Kafka Consumers. Since KIP-392, consumers can fetch from the closest replica. This works well when there are replicas in all racks but if there are more racks than replicas, consumers may not have a replica in their rack. This KIP proposes updating the range and cooperative sticky assignors to take the racks consumers are in into account when assigning partitions.
KIP-887: Add ConfigProvider to make use of environment variables. Configuration Providers allow retrieving values for configurations at runtime. This KIP proposes adding a new built-in provider,
EnvVarConfigProvider, for retrieving configurations from environment variables. This can be useful when running brokers or clients in container environments.
KIP-890: Transactions Server-Side Defense. There are a couple of issues with transactions that can cause them to hang. When hung, a transaction can prevent cleaning compacted topics, and consumers with the isolation level set to
read_committedget stuck. This KIP proposes making a few changes to transactions to address these issues. First, in order to uniquely identify each transaction, new clients will bump their epoch when committing or aborting transactions. They will also stop using the
AddPartitionsToTxnRPC and instead partitions will be added to transactions implicitly. Finally for existing clients, brokers will ensure a transaction is effectively on-going before accepting new records.
KIP-891: Running multiple versions of a connector. Currently Connect can only use a single version for a connector. This can be problematic when a new connector release introduces breaking changes as it prevents running it alongside the previous version. This KIP aims at addressing this limitation by adding support for running multiple versions of a connector in a Connect cluster.
strimzi-kafka-operator 0.32.0: Strimzi is a Kubernetes Operator for running Kafka. This new version only supports Kubernetes 1.19 and above. It now also supports Kafka 3.3.1 and OpenTelemetry for distributed tracing, and contains various improvements in the
akhq 0.23: AKHQ is a GUI for Apache Kafka. This new release improves the performance of the topic data search in the UI and fixes a handful of issues in the interface.
I selected some interesting blog articles that were published last month:
- What Is Data Streaming?
- TopicGC: How LinkedIn cleans up unused metadata for its Kafka clusters
- How we moved 100 million chat messages with no downtime
To learn more about Kafka, visit Red Hat Developer's Apache Kafka topic page.