Skip to main content
Redhat Developers  Logo
  • Products

    Platforms

    • Red Hat Enterprise Linux
      Red Hat Enterprise Linux Icon
    • Red Hat AI
      Red Hat AI
    • Red Hat OpenShift
      Openshift icon
    • Red Hat Ansible Automation Platform
      Ansible icon
    • View All Red Hat Products

    Featured

    • Red Hat build of OpenJDK
    • Red Hat Developer Hub
    • Red Hat JBoss Enterprise Application Platform
    • Red Hat OpenShift Dev Spaces
    • Red Hat OpenShift Local
    • Red Hat Developer Sandbox

      Try Red Hat products and technologies without setup or configuration fees for 30 days with this shared Openshift and Kubernetes cluster.
    • Try at no cost
  • Technologies

    Featured

    • AI/ML
      AI/ML Icon
    • Linux
      Linux Icon
    • Kubernetes
      Cloud icon
    • Automation
      Automation Icon showing arrows moving in a circle around a gear
    • View All Technologies
    • Programming Languages & Frameworks

      • Java
      • Python
      • JavaScript
    • System Design & Architecture

      • Red Hat architecture and design patterns
      • Microservices
      • Event-Driven Architecture
      • Databases
    • Developer Productivity

      • Developer productivity
      • Developer Tools
      • GitOps
    • Automated Data Processing

      • AI/ML
      • Data Science
      • Apache Kafka on Kubernetes
    • Platform Engineering

      • DevOps
      • DevSecOps
      • Ansible automation for applications and services
    • Secure Development & Architectures

      • Security
      • Secure coding
  • Learn

    Featured

    • Kubernetes & Cloud Native
      Openshift icon
    • Linux
      Rhel icon
    • Automation
      Ansible cloud icon
    • AI/ML
      AI/ML Icon
    • View All Learning Resources

    E-Books

    • GitOps Cookbook
    • Podman in Action
    • Kubernetes Operators
    • The Path to GitOps
    • View All E-books

    Cheat Sheets

    • Linux Commands
    • Bash Commands
    • Git
    • systemd Commands
    • View All Cheat Sheets

    Documentation

    • Product Documentation
    • API Catalog
    • Legacy Documentation
  • Developer Sandbox

    Developer Sandbox

    • Access Red Hat’s products and technologies without setup or configuration, and start developing quicker than ever before with our new, no-cost sandbox environments.
    • Explore Developer Sandbox

    Featured Developer Sandbox activities

    • Get started with your Developer Sandbox
    • OpenShift virtualization and application modernization using the Developer Sandbox
    • Explore all Developer Sandbox activities

    Ready to start developing apps?

    • Try at no cost
  • Blog
  • Events
  • Videos

Kafka Monthly Digest: March 2025

April 1, 2025
Mickael Maison
Related topics:
Kafka
Related products:
Streams for Apache Kafka

Share:

    This 86th edition of the Kafka Monthly Digest covers what happened in the Apache Kafka community in March 2025.

    For last month’s digest, see Kafka Monthly Digest: February 2025
     

    Releases

    There is 1 new release, and 2 releases are in progress:

    4.0.0

    On March 18, after 4 release candidates, David Jacot published Apache Kafka 4.0.0. You can find the announcement on the Apache Kafka blog. You can also check the release notes and the release plan in the wiki.

    Kafka 4.0.0 is a major release introducing significant general changes:

    • It removes ZooKeeper support, so clusters still using ZooKeeper must first migrate to KRaft using 3.9 before being able to upgrade to 4.0. As with any major release, it's recommended to check the upgrade guide and the notable changes sections in the documentation before upgrading.
    • It drops support for Java 8. Clients and Streams now require Java 11, while brokers, tools and Connect now require Java 17 (KIP-750 and KIP-1013).
    • It drops support for old API protocols, the new baseline is Kafka 2.1. Java clients older than 2.1 won't work with 4.0.0 brokers (KIP-896), similarly 4.0 clients won't work with brokers older than 2.1. The old message formats v0 and v1 have also been removed. Java clients have used message format v2 by default since Kafka 0.11. You can use the kafka.server:type=BrokerTopicMetrics,name={Produce|Fetch}MessageConversionsPerSec metrics to check if any clients are still configured with an older message format (KIP-724) before upgrading.

    This release brings several major new features and improvements across all components.

    Kafka brokers and clients

    Updates to the Kafka broker and clients include the following:

    • The new consumer rebalance protocol introduced in 3.8 is now production ready. It increases the stability and the performance of consumer groups. (KIP-848)
    • Apache Kafka now ships with log4j2. The default configuration file now uses the YAML format. (KIP-653)
    • Support for Queue is in early access. Queues allow multiple consumers to cooperatively read records from the same partition. Records are still consumed by a single consumer in the share group and can be acknowledged individually. (KIP-932)
    • Since Kafka 3.7, Kafka clients can send their metrics to brokers. Now client applications can also inject their own metrics to be sent to brokers. (KIP-1076)
    • Various important improvements around transactions stability (KIP-890), KRaft leader elections with the introduction of pre-votes (KIP-996), and data consistency during leader elections (KIP-966).
    • Clients can proactively re-bootstrap when they hit specific errors or timeouts to avoid being stuck in case all initial bootstrap servers are unreachable. (KIP-1102)

    Kafka Connect

    Updates to Kafka Connect include the following:

    • The GET /connectors/{connector}/tasks-config endpoint which was deprecated has now been removed. Users should now use the GET /connectors/{connector}/tasks endpoint. (KIP-970)
    • MirrorMaker can now be configured to mirror topics with names ending with .internal or -internal. (KIP-1074)
    • MirrorMaker can now be configured to not mirror heartbeats topics. (KIP-1089)

    Kafka Streams

    • The foreign key extractor function in table joins now receives both the record keys and values. (KIP-1104)
    • The new ProcessorWrapper interface enables seamless injection of custom logic around Processor API and DSL processors. (KIP-1112)
    • ProductionExceptionHandler implementations can now retry, gracefully fail or drop problematic records to continue processing efficiently. (KIP-1065)

    3.9.1

    On March 24, Luke Chen volunteered to be the release manager for Kafka 3.9.1. Since 3.9.0, almost 50 issues have been fixed, including a few blockers. The release is planned for April. You can find the release plan in the wiki.

    4.1.0

    On March 19, I volunteered to be the release manager for Kafka 4.1.0. The release is planned for July. You can find the release plan in the wiki.

     

    Kafka Improvement Proposals

    Last month, the community submitted 11 KIPs (KIP-1140 to KIP-1151, KIP-1150 was skipped). I'll highlight a few of them:

    • KIP-1144: Exposing a new public REST API for MirrorMaker 2: When running MirrorMaker in dedicated mode, the Connect REST API is not available. So while this mode was expected to make it easy to run MirrorMaker by hiding Connect and using the arrow notation -> to define mirroring routes, the lack of REST API is a big limitation preventing users from adopting it. This KIP proposes exposing a dedicated REST API specifically tailored to this mode.
    • KIP-1147: Improve consistency of command-line arguments: Kafka has a number of CLI tools that are essential for operators and users to manage their clusters. If you've used the tools you've probably noticed that they don't all use the exact same flags. For example kafka-producer-perf-test.sh uses the --producer-props flag to set producer configurations while kafka-console-producer.sh uses --producer-property. This KIP aims at reviewing all the existing flags and making them consistent across all the CLI tools.
    • KIP-1151: Minimal movement replica balancing algorithm for reassignment: The kafka-reassign-partitions.sh tool allows moving partitions between brokers. It is often used by administrators to balance the load on a cluster. This tool has the --generate flag to generate a partition reassignment. However it's not recommended to use it because the assignment it generates does not take into account the existing assignment. So in most cases, using a generated assignment will lead to a lot of unnecessary replica movements and significant extra load on a cluster. This KIP proposes adding a new flag --rebalance that will aim at minimizing replica movements while still evenly spreading partitions.

    Community Releases

    • kroxylicious 0.11: Kroxylicious is an open source pluggable framework for writing network proxies that understand the Apache Kafka protocol. This new release updates the configuration file format so it's easier to use. It also introduces a new Record Encryption policy to reject producer batches if the proxy can't resolve a key encryption key for a topic.

    Blogs

    I selected some interesting blog articles that were published last month:

    • Kafka Streams 101: Optimizing your apps for maximum performance
    • Let's Take a Look at... KIP-932: Queues for Kafka!
    • Understanding Kafka Streams: State Management, Topics, and Threading
    • Performance optimization for snapshots from Oracle databases
    • Benchmarking Kafka: Distributed Workers and Workload topology in OpenMessaging Benchmark

    To learn more about Kafka, visit Red Hat Developer's Apache Kafka topic page.

    Disclaimer: Please note the content in this blog post has not been thoroughly reviewed by the Red Hat Developer editorial team. Any opinions expressed in this post are the author's own and do not necessarily reflect the policies or positions of Red Hat.

    Recent Posts

    • How to change the meaning of python and python3 on RHEL

    • vLLM or llama.cpp: Choosing the right LLM inference engine for your use case

    • How to implement and monitor circuit breakers in OpenShift Service Mesh 3

    • Analysis of OpenShift node-system-admin-client lifespan

    • What's New in OpenShift GitOps 1.18

    Red Hat Developers logo LinkedIn YouTube Twitter Facebook

    Platforms

    • Red Hat AI
    • Red Hat Enterprise Linux
    • Red Hat OpenShift
    • Red Hat Ansible Automation Platform
    • See all products

    Build

    • Developer Sandbox
    • Developer Tools
    • Interactive Tutorials
    • API Catalog

    Quicklinks

    • Learning Resources
    • E-books
    • Cheat Sheets
    • Blog
    • Events
    • Newsletter

    Communicate

    • About us
    • Contact sales
    • Find a partner
    • Report a website issue
    • Site Status Dashboard
    • Report a security problem

    RED HAT DEVELOPER

    Build here. Go anywhere.

    We serve the builders. The problem solvers who create careers with code.

    Join us if you’re a developer, software engineer, web designer, front-end designer, UX designer, computer scientist, architect, tester, product manager, project manager or team lead.

    Sign me up

    Red Hat legal and privacy links

    • About Red Hat
    • Jobs
    • Events
    • Locations
    • Contact Red Hat
    • Red Hat Blog
    • Inclusion at Red Hat
    • Cool Stuff Store
    • Red Hat Summit
    © 2025 Red Hat

    Red Hat legal and privacy links

    • Privacy statement
    • Terms of use
    • All policies and guidelines
    • Digital accessibility

    Report a website issue