justinmclean commented on code in PR #127:
URL: https://github.com/apache/iggy-website/pull/127#discussion_r4150655610


##########
content/blog/apache-iggy-or-apache-kafka.mdx:
##########
@@ -0,0 +1,47 @@
+---
+title: "Apache Iggy or Apache Kafka: which problems each one is actually for"
+description: Where Apache Iggy fits against Apache Kafka, when to reach for 
each one, and what to expect if you already run Kafka.
+author: Justin Mclean
+tags: ["kafka", "comparison", "architecture"]
+date: 2026-09-23
+---
+
+The question I get asked most about Iggy is whether it replaces Kafka. For 
some things it does and for plenty of others it doesn't, so the useful part is 
knowing which is which.
+
+## What each one is built for
+
+Kafka is built for scale, and for everything that has grown up around it. The 
broker runs on the JVM and stores each topic as a partitioned append-only log, 
replicated to a set of in-sync replicas. KRaft replaced ZooKeeper in 4.0, so a 
quorum of brokers holds metadata rather than a separate service. Share groups 
went production-ready in 4.2, so it provides queue semantics as well as log 
semantics. But what you're really choosing is the ecosystem: Connect, Streams, 
Schema Registry, every CDC tool and every observability vendor already speak 
Kafka.
+
+Iggy handles the same streaming work, with lower tail latency and less to run. 
It's written in Rust and runs thread-per-core on io_uring, with nothing shared 
between cores, so each partition is owned by a single CPU-pinned shard. It 
speaks its own binary protocol over TCP, QUIC and WebSocket, with a REST API 
alongside. Running it means one binary and one config file, with no JVM and 
nothing else to install. There are SDKs for Rust, Python, Go, Java, C#, Node, 
C++ and PHP, and it has consumer groups and stores consumer offsets on the 
server, so consumers work much as they do in Kafka. It's younger than Kafka by 
a decade, and the current release is 0.9.0.
+
+## Reach for Iggy when
+
+**Operational weight is your main cost.** You're running a single node or a 
small deployment, and you don't want to operate a JVM cluster: tuning heap and 
GC, planning partition counts up front, running a rebalancer. Iggy is one 
binary and one TOML file, with the CLI, Prometheus metrics and OpenTelemetry 
traces built in. If you want the Web UI, that's a separate app with its own 
Docker image.

Review Comment:
   Done. It now says "a single node or a small cluster", and adds that a 
cluster is the same binary with every node loading the same TOML file.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to