Latest in branch 0.7
0.7.2
Released 10 Oct 2012
(13 years ago)
SoftwareApache Kafka
Version0.7
Initial release0.7.2
10 Oct 2012
(13 years ago)
Latest release0.7.2
10 Oct 2012
(13 years ago)
Apache Kafka
Community EoS
25 Nov 2013
(Ended 12 years ago)
Confluent
Community EoS
Unavailable
Confluent
Standard EoS
Unavailable
Confluent
Platinum EoS
TBD
Release noteshttps://dlcdn.apache.org/kafka/0.7.0/RELEASE_NOTES.html
Source codehttps://github.com/apache/kafka/archive/refs/tags/0.7.2.tar.gz
Documentationhttps://kafka.apache.org/07/documentation.html
Apache Kafka 0.7 ReleasesView full list

What Is New in Apache Kafka 0.7

This release marks a significant step forward in Kafka's evolution, focusing on foundational improvements to producer and consumer clients, core performance, and system reliability.

Category Key Changes
New Features Asynchronous Producer API, Consumer Offset Storage, Per-topic compression
Improvements Performance tuning, Producer batching, Consumer fetcher logic
Bug Fixes Socket server, Log flusher, Replica management issues
Deprecations Older consumer APIs begin to be phased out

What are the major producer and consumer API changes?

The biggest change is the introduction of a new, fully asynchronous Producer API. This allows applications to fire off messages without blocking, significantly boosting throughput for high-volume use cases.

On the consumer side, the framework for storing offsets in Kafka itself was introduced. This was a crucial step towards building more reliable consumer applications that could track their position without relying on ZooKeeper directly.

In practice, this meant you could now build systems that were both faster on the write path and more resilient on the read path. The old synchronous producer felt sluggish in comparison.

How was performance and reliability enhanced?

Numerous under-the-hood optimizations were made to the core engine. The producer gained sophisticated batching logic, aggregating messages in memory before sending them over the network to reduce the number of I/O operations.

The consumer fetcher logic was rewritten to be more efficient and robust, fixing several edge cases that could cause stalls. The log flusher and socket server components also received critical fixes that improved overall stability.

This matters because these low-level tweaks directly translated to higher sustained throughput and reduced latency variance. The system just felt more solid under heavy load.

What new configuration and compression options were added?

A major flexibility introduced was the ability to set compression on a per-topic basis. You could now specify different codecs like gzip or snappy for different topics via the compression.codec topic-level configuration.

This was a game-changer for optimizing cluster resources. High-volume, low-priority logs could be heavily compressed to save bandwidth and disk space, while latency-critical topics could run with no compression at all.

It acknowledged that a one-size-fits-all configuration doesn't work for real-world data pipelines. You finally had the granular control needed to tune for your specific use case.

FAQ

Should I use the new async producer or stick with the sync one?
Use the async producer for almost all new development. The performance difference is massive. The sync API is effectively deprecated at this point and exists mainly for simplicity in specific edge cases.

How do consumer offsets work now?
Offsets can now be committed back to a dedicated Kafka topic (e.g., __consumer_offsets). This is more reliable than the previous Zookeeper-based method and allows for much higher commit rates, which is essential for consumer groups with many partitions.

Is there a way to reduce network overhead for my topics?
Yes, you can now enable compression per-topic. Set the compression.codec config for a topic to 'gzip' or 'snappy' to significantly reduce the size of the data sent over the wire and stored on disk.

What was the main performance win in this release?
The producer batching logic. By allowing the producer to aggregate messages in memory before sending, it drastically reduced the number of network round-trips, which is often the biggest bottleneck.

Are there any known issues to watch out for after upgrading?
Be mindful of the consumer fetcher changes. While they fix old bugs, the new behavior might be slightly different. Test your consumer clients thoroughly to ensure they handle the new fetch response format and logic correctly.

Releases In Branch 0.7

VersionRelease date
0.7.210 Oct 2012
(13 years ago)