A few months ago, we announced the release of open-source Confluent Platform 3.0 and Apache Kafka 0.10, marking the availability of Kafka Streams — the new stream processing engine of Apache Kafka — and Confluent Control Center — a comprehensive management and monitoring solution for Apache Kafka available in Confluent Platform. Since this release, Kafka Streams has received great feedback from the community and also has early adopters that have shared success stories for large-scale production deployments, for implementing microservices and reactive applications, user behavior analysis, containerized Scala stream processing applications, geospatial analysis, language classification via machine learning, and much more.

Today, I am pleased to announce the availability of the first patch release of the Kafka 0.10 series: the 0.10.0.1 release of Apache Kafka and the corresponding release of the Confluent Platform 3.0.1. The 0.10.0.1 release fixes a total of 56 issues, out of which 40 are bug fixes and 11 are general improvements. We recommend all users upgrade to this release by bumping up the version of your Kafka dependencies to 0.10.0.1 (Confluent Platform users: 0.10.0.1-cp1) in your applications and updating the binary installations on server machines.

Here is a quick overview of the notable bug fixes in the release, grouped by the affected functionality. You can review the complete list of issues fixed in the release notes and the Kafka-related list of issues in the Apache Kafka release notes.

Confluent Control Center – Available in Confluent Platform

We added the ability to delete a running connector and also added support for monitoring secure Kafka clusters. In addition, Confluent Control Center in Confluent Platform 3.0.1 is significantly more efficient; several performance fixes are included, reducing memory consumption and running overhead of Confluent Control Center.

Kafka Streams

This release introduces the new Application Reset Tool in Kafka Streams. This tool allows you to reset an application using Kafka Streams to reprocess from scratch — similar to a “reset button” on an application.

The ability to reset an application is useful in for a number of reasons — A/B testing new application business logic, development iteration, fixing a bug and upgrading the application and more.

Prior to this release, the process of resetting an application was manual and error-prone.

Security

KAFKA-3950: MirrorMaker whitelist option should only require authorization for matching topics

KAFKA-3783: Race condition on last ACL removal fails with a ZkBadVersionException

KAFKA-3830: getTGT() debug logging exposes confidential information

Reliability

KAFKA-3933: Kafka OOM During Log Recovery Due to Leaked Native Memory

KAFKA-3996: ByteBufferMessageSet.writeTo() should be non-blocking

KAFKA-3924: Data loss due to halting when LEO is larger than leader’s LEO

KAFKA-3915: LogCleaner IO buffers do not account for potential size difference due to message format change

KAFKA-3802: log mtimes reset on broker restart

KAFKA-3789: Upgrade Snappy to fix snappy decompression errors

KAFKA-3718: propagate all KafkaConfig __consumer_offsets configs to OffsetConfig

KAFKA-3787: Preserve message timestamp in mirror maker

KAFKA-4073: MirrorMaker should handle mirroring messages w/o timestamp

KAFKA-3258: BrokerTopicMetrics of deleted topics are never deleted

Performance/memory usage

KAFKA-3785: Fetcher spending unnecessary time during metrics recording

KAFKA-3747: Close current batch before starting a new one to release memory sooner

Java Consumer

KAFKA-3960: Committed offset not set after first assign

KAFKA-3879: KafkaConsumer with auto-commit enabled gets stuck when killed after broker is dead

KAFKA-3854: Subsequent regex subscription calls fail

Contributors

According to git shortlog, 45 people contributed to this release:

Alex Glikson, Alex Loddengaard, Alexey Romanchuk, Ashish Singh, Avi Flax, Damian Guy, Dan Norwood, Dustin Cote, Edoardo Comar, Eno Thereska, Ewen Cheslack-Postava, Flavio Junqueira, Florian Hussonnois, Geoff Anderson, Grant Henke, Greg Fodor, Guozhang Wang, Gwen Shapira, Henry Cai, Ismael Juma, Jason Gustafson, Jeff Klukas, Jendrik Poloczek, Jeyhun Karimov, Liquan Pei, Manikumar Reddy O, Mathieu Fenniak, Matthias J. Sax, Maysam Yabandeh, Mayuresh Gharat, Mickael Maison, Moritz Siuts, Onur Karaman, Philippe Derome, Rajini Sivaram, Rollulus, Ryan Pridgeon, Samuel Taylor, Sebastien Launay, Sriharsha Chintalapani, Tao Xiao, Todd Palino, Tom Crayford, Tom Rybak, Vahid Hashemian, Wan Wenli, Yuto Kawamura



How do I get Apache Kafka 0.10.0.1?

The easiest way to get started with or upgrade Kafka is by downloading Confluent Platform. The 3.0.1 release of Confluent Platform is 100% open-source and includes Apache Kafka 0.10.0.1 along with tools that you need to get started with Kafka. Learn more about it by reading the details in the Confluent Platform 3.0.1 documentation or download it to give it a spin.

Confluent Platform 3.0.1 is backed by our subscription support, and we also offer expert training and technical consulting to help get your organization started.

As always, we are happy to hear your feedback. Please post your questions and suggestions to the public Confluent Platform mailing list.