<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/apache-kafka-vs-apache-iggy-same-log-different-engine-up4ql7i4f" -->

---
title: Apache Kafka vs Apache Iggy: Same Log, Different Engine
description: A detailed technical comparison between Apache Kafka and Apache Iggy, the Rust-based, thread-per-core streaming platform recently promoted to a top-level...
canonical: https://daily.dev/posts/apache-kafka-vs-apache-iggy-same-log-different-engine-up4ql7i4f
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Apache Kafka vs Apache Iggy: Same Log, Different Engine | daily.dev
og:description: A detailed technical comparison between Apache Kafka and Apache Iggy, the Rust-based, thread-per-core streaming platform recently promoted to a top-level...
og:url: https://daily.dev/posts/apache-kafka-vs-apache-iggy-same-log-different-engine-up4ql7i4f
og:image: https://api.daily.dev/og/posts/up4Ql7i4F.png
og:image:alt: Apache Kafka vs Apache Iggy: Same Log, Different Engine
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Apache Kafka vs Apache Iggy: Same Log, Different Engine

**[SoftwareMill](https://daily.dev/sources/softwaremill)** · 20 min read · 5 upvotes · 1 comments

## Summary

A detailed technical comparison between Apache Kafka and Apache Iggy, the Rust-based, thread-per-core streaming platform recently promoted to a top-level Apache project. The piece walks through architectural differences (JVM vs io_uring-based thread-per-core design), durability semantics, replication (Kafka's mature ISR-based model vs Iggy's newly-implemented Viewstamped Replication), exactly-once guarantees, log compaction, multi-DC disaster recovery, protocol compatibility, and connector ecosystems. The conclusion: Iggy is a compelling single-node engine with promising replication on the horizon, but Kafka's fifteen years of production-hardened features (transactions, compaction, multi-DC RPO/RTO guarantees, large ecosystem) still make it the safer choice for most production workloads today.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://softwaremill.com/apache-kafka-vs-apache-iggy-same-log-different-engine>

## Questions this post answers

### What architecture change did Apache Iggy make in version 0.6.0?

Starting with version 0.6.0, Iggy's server moved from a Tokio-based async runtime to a thread-per-core architecture built on the compio runtime, which uses io_uring on Linux. Partitions are assigned to CPU-pinned shards so each shard owns and executes its workload on a specific core, reducing cross-thread synchronization and cache invalidation. The project reports up to 92% better P9999 tail latency and 18% higher throughput with fsync enabled as a result.

_Engineers weighing thread-per-core designs against work-stealing runtimes can track these engine rewrites on daily.dev._

### Does Apache Iggy support replicated, multi-node clusters yet?

Not in a stable release yet, but it is close. Multi-node clustering based on Viewstamped Replication (VSR) is already implemented in the new server-ng codebase, promoted to become the main iggy-server in August 2026, with 0.9.0-edge builds available. The server-side work including view changes, state transfer, leader forwarding, and deterministic simulation testing is described as largely complete, but the stable release with full SDK support has not shipped, leaving the latest stable version at 0.8.0.

_Teams deciding between Kafka and an emerging Rust alternative can follow Iggy's replication maturity on daily.dev._

### How does Kafka achieve zero RPO when an entire data center fails?

Kafka achieves an RPO of zero for data-center loss by stretching a cluster across nearby data centers using broker.rack to represent availability zones, spreading partition replicas across those domains, and requiring acks=all with an appropriate min.insync.replicas so acknowledgement depends on replicas outside the local data center. Because the remote replica participates in synchronous acknowledgement, losing one data center loses no already-acknowledged message, unlike asynchronous tools like MirrorMaker 2 which can lose some in-flight data.

_Anyone designing multi-DC disaster recovery for event streaming can compare these RPO/RTO trade-offs on daily.dev._

## Community discussion

Top comments from developers on daily.dev.

**@agustinbarrientos** · 0 upvotes

> The first replicated benchmark should define the failure survived by each acknowledgment mode. I'd want separate power-loss and leader-failover runs. Comparing Iggy's VSR path with Kafka's `acks=all` only works when both acknowledge the same durability promise.

## Similar posts on daily.dev

- [Apache Pulsar vs Kafka: Comparing Modern Event Streaming Platforms](https://daily.dev/posts/apache-pulsar-vs-kafka-comparing-modern-event-streaming-platforms-xxazuulf9) · C\# Corner · 0 upvotes · 0 comments
- [Redpanda vs Kafka vs Confluent: An Honest Comparison](https://daily.dev/posts/redpanda-vs-kafka-vs-confluent-an-honest-comparison-uwqh9yqvj) · Confluent Blog · 0 upvotes · 0 comments
- [9 Apache Spark Alternatives You Should Know in 2026](https://daily.dev/posts/9-apache-spark-alternatives-you-should-know-in-2026-eo0oaq4kc) · ITNEXT · 1 upvotes · 0 comments

---

Tags: [#rust](https://daily.dev/tags/rust), [#apache-kafka](https://daily.dev/tags/apache-kafka)

[View this post on daily.dev](https://daily.dev/posts/apache-kafka-vs-apache-iggy-same-log-different-engine-up4ql7i4f)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Apache Kafka vs Apache Iggy: Same Log, Different Engine","url":"https://daily.dev/posts/apache-kafka-vs-apache-iggy-same-log-different-engine-up4ql7i4f","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/apache-kafka-vs-apache-iggy-same-log-different-engine-up4ql7i4f"},"datePublished":"2026-09-02T10:28:55.429Z","dateModified":"2026-09-02T10:29:23.460Z","description":"A detailed technical comparison between Apache Kafka and Apache Iggy, the Rust-based, thread-per-core streaming platform recently promoted to a top-level...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/3f8433417bb82a250e874e2bc170509b?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/3f8433417bb82a250e874e2bc170509b?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"SoftwareMill","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"SoftwareMill","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/30827c94697f47fcbc88ff9b59fa226f","url":"https://daily.dev/sources/softwaremill"},"commentCount":1,"discussionUrl":"https://daily.dev/posts/apache-kafka-vs-apache-iggy-same-log-different-engine-up4ql7i4f","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":5},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":1}],"keywords":"rust,apache-kafka","timeRequired":"PT20M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"SoftwareMill","item":"https://daily.dev/sources/softwaremill"},{"@type":"ListItem","position":3,"name":"Apache Kafka vs Apache Iggy: Same Log, Different Engine"}]}
{"@context":"https://schema.org","@type":"WebPage","@id":"https://daily.dev/posts/apache-kafka-vs-apache-iggy-same-log-different-engine-up4ql7i4f","comment":[{"@type":"Comment","text":"The first replicated benchmark should define the failure survived by each acknowledgment mode. I’d want separate power-loss and leader-failover runs. Comparing Iggy’s VSR path with Kafka’s acks=all only works when both acknowledge the same durability promise.","datePublished":"2026-09-03T22:53:54.562Z","url":"https://daily.dev/posts/up4Ql7i4F#c-ix6hJjn3z","author":{"@type":"Person","name":"Agustin Barrientos","url":"https://daily.dev/agustinbarrientos","image":"https://media.daily.dev/image/upload/s--5ayxQnqn--/f_auto/v1788281802/avatars/avatar_wQYYVe5Tbj0NJ7C7qPoa8?_a=BAMAMicg0"}}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/apache-kafka-vs-apache-iggy-same-log-different-engine-up4ql7i4f#faq","mainEntity":[{"@type":"Question","name":"What architecture change did Apache Iggy make in version 0.6.0?","acceptedAnswer":{"@type":"Answer","text":"Starting with version 0.6.0, Iggy's server moved from a Tokio-based async runtime to a thread-per-core architecture built on the compio runtime, which uses io_uring on Linux. Partitions are assigned to CPU-pinned shards so each shard owns and executes its workload on a specific core, reducing cross-thread synchronization and cache invalidation. The project reports up to 92% better P9999 tail latency and 18% higher throughput with fsync enabled as a result. Engineers weighing thread-per-core designs against work-stealing runtimes can track these engine rewrites on daily.dev."}},{"@type":"Question","name":"Does Apache Iggy support replicated, multi-node clusters yet?","acceptedAnswer":{"@type":"Answer","text":"Not in a stable release yet, but it is close. Multi-node clustering based on Viewstamped Replication (VSR) is already implemented in the new server-ng codebase, promoted to become the main iggy-server in August 2026, with 0.9.0-edge builds available. The server-side work including view changes, state transfer, leader forwarding, and deterministic simulation testing is described as largely complete, but the stable release with full SDK support has not shipped, leaving the latest stable version at 0.8.0. Teams deciding between Kafka and an emerging Rust alternative can follow Iggy's replication maturity on daily.dev."}},{"@type":"Question","name":"How does Kafka achieve zero RPO when an entire data center fails?","acceptedAnswer":{"@type":"Answer","text":"Kafka achieves an RPO of zero for data-center loss by stretching a cluster across nearby data centers using broker.rack to represent availability zones, spreading partition replicas across those domains, and requiring acks=all with an appropriate min.insync.replicas so acknowledgement depends on replicas outside the local data center. Because the remote replica participates in synchronous acknowledgement, losing one data center loses no already-acknowledged message, unlike asynchronous tools like MirrorMaker 2 which can lose some in-flight data. Anyone designing multi-DC disaster recovery for event streaming can compare these RPO/RTO trade-offs on daily.dev."}}]}
```

