# 🎧 Apache Kafka 3.5 - Kafka Core, Connect, Streams, & Client Updates

**URL:** <https://forum.confluent.io/t/apache-kafka-3-5-kafka-core-connect-streams-client-updates/8109>\
**Category:** News and Blogs\
**Created:** [15 June 2023 16:17 UTC](https://forum.confluent.io/t/apache-kafka-3-5-kafka-core-connect-streams-client-updates/8109 "2023-06-15T16:17:59Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![alice.richardson](https://sea1.discourse-cdn.com/flex019/user_avatar/forum.confluent.io/alice.richardson/32/137_2.png) [@alice.richardson](https://forum.confluent.io/u/alice.richardson)\
**Post date:** [15 June 2023 16:17 UTC](https://forum.confluent.io/t/apache-kafka-3-5-kafka-core-connect-streams-client-updates/8109/1 "2023-06-15T16:17:59Z")

</div>

_There’s a new Streaming Audio episode - check it out!_

Apache Kafka® 3.5 is here with the capability of previewing migrations between ZooKeeper clusters to KRaft mode. Follow along as Danica Fine highlights key release updates.  
  
Kafka Core:

- KIP-833 provides an updated timeline for KRaft.
- KIP-866 now is preview and allows migration from an existing ZooKeeper cluster to KRaft mode.
- KIP-900 introduces a way to bootstrap the KRaft controllers with SCRAM credentials.
- KIP-903 prevents a data loss scenario by preventing replicas with stale broker epochs from joining the ISR list. 
- KIP-915 streamlines the process of downgrading Kafka's transaction and group coordinators by introducing tagged fields.

Kafka Connect:

- KIP-710 provides the option to use a REST API for internal server communication that can be enabled by setting `dedicated.mode.enable.internal.rest` equal to true. 
- KIP-875 offers support for native offset management in Kafka Connect. Connect cluster administrators can now read offsets for both source and sink connectors. This KIP adds a new STOPPED state for connectors, enabling users to shut down connectors and maintain connector configurations without utilizing resources.
- KIP-894 makes `IncrementalAlterConfigs` API available for use in MirrorMaker 2 (MM2), adding a new use.incremental.alter.config configuration which takes values “requested,” “never,” and “required.”
- KIP-911 adds a new source tag for metrics generated by the `MirrorSourceConnector` to help monitor mirroring deployments.

Kafka Streams:

- KIP-339 improves Kafka Streams' error-handling capabilities by addressing serialization errors that occur before message production and extending the interface for custom error handling. 
- KIP-889 introduces versioned state stores in Kafka Streams for temporal join semantics in stream-to-table joins. 
- KIP-904 simplifies table aggregation in Kafka by proposing a change in serialization format to enable one-step aggregation and reduce noise from events with old and new keys/values. 
- KIP-914 modifies how versioned state stores are used in Kafka Streams. Versioned state stores may impact different DSL processors in varying ways, see the documentation for details.

Kafka Client:

- KIP-881 is now complete and introduces new client-side assignor logic for rack-aware consumer balancing for Kafka Consumers. 
- KIP-887 adds the `EnvVarConfigProvider` implementation to Kafka so custom configurations stored in environment variables can be injected into the system by providing the map returned by `System.getEnv()`.
- KIP 641 introduces the `RecordReader` interface to Kafka's clients module, replacing the deprecated MessageReader Scala trait. 

EPISODE LINKS

- See [release notes](https://archive.apache.org/dist/kafka/3.5.0/RELEASE_NOTES.html) for Apache Kafka 3.5
- [Download](https://kafka.apache.org/downloads) and [get started](https://kafka.apache.org/documentation/#quickstart) with Apache Kafka 3.5
- [Watch the video](https://youtu.be/BVxDFL5iTx8) version of this podcast

* * *

[**🎧 Listen to the episode**](https://www.podtrac.com/pts/redirect.mp3/www.buzzsprout.com/186154/12852670-apache-kafka-3-5-kafka-core-connect-streams-client-updates.mp3)
