Apache Kafka vs Apache Iggy: Same Log, Different Engine

Wed, 02 Sep 2026 15:51:00 +0000
Apache Kafka, Data Streaming, Apache Iggy

Is Apache Iggy a faster Apache Kafka?

At first glance, this looks like a fairly simple comparison. Both systems persist messages in partitioned, append-only logs. Both have offsets, retention policies, consumer groups, and replay. Apache Iggy is written in Rust with a thread-per-core architecture on top of io_uring, while Kafka runs on the JVM. So perhaps we should run a benchmark and pick the faster one.

If the name is new to you: Iggy is a message streaming platform written in Rust, freshly promoted from the Apache Incubator to a top-level Apache project in August 2026 - which is exactly why it is showing up in comparisons like this one. Kafka needs no introduction.

Such a comparison quickly becomes incomplete without asking a basic question: what exactly does a successful write means? Was the message copied into a memory buffer? Written to the operating system page cache? Flushed to a local disk? Replicated to another machine? Replicated to another data center? And what happens when the machine, rack, or entire data center disappears immediately after the producer receives an acknowledgement?

This is where Kafka and Iggy currently start to look very different.

A young project, moving fast

A few words about Iggy first. Piotr Gankiewicz started it in early 2023 as a way to learn Rust by building something real; the name is short for Italian Greyhound - a small but extremely fast dog - and, as a Polish engineer, I enjoy how much of its core team comes from Poland. The project entered the Apache Incubator in early 2025 and graduated unanimously in August 2026, almost exactly as its long-running replication work approached a first clustered release. That timing frames this article: we are no longer comparing Kafka with the single-node-only Iggy described in most existing write-ups, but neither are we looking at a replicated release with years of production history.

They agree on the basic data model

Iggy is not trying to replace the log with a different abstraction. Its storage model should look familiar to anyone who has worked with Kafka. An Iggy Stream is an additional namespace above topics. Apart from that, the hierarchy is close to Kafka. A partition is an ordered, append-only log consisting of segments. Messages have offsets. Consumers can start from an explicit offset, a timestamp, the beginning or the end of the log, or continue from a server-side stored consumer offset.

This makes it a different kind of comparison than with systems that replace the event log with a database or a streaming table-a story we covered separately when looking at Apache Fluss. Iggy does not argue that Kafka picked the wrong abstraction; it asks whether the same abstraction can be implemented differently. The rest of this article is about where those implementation choices land.

Where Iggy actually differs

Kafka has had a long time to optimize its storage path. It writes sequentially, batches aggressively, uses the operating system page cache, and can use zero-copy transfer when...