Apache Iggy™ has officially graduated from the Apache Incubator and is now an Apache Software Foundation Top-Level Project (TLP)
It’s been quite a journey, from a small Rust message-streaming experiment in 2023 to an independent Apache project with a growing community. And its biggest feature yet, being the Viewstamped Replication Revisited (VSR) clustering, is coming soon.
I always thought Im just not good enough to understand, hey Im just too dumb, surely there's people out there who understand what differentiates all these apache products! Nope never found one.
What a crock of shite. Of course there's going to be some dead one when you have this many, but there are also projects that are foundational and many exciting new ones too:
There are roughly 400 projects on that page; about 90 are in the attic, meaning formally retired. Another 25 are incubating, and some of those look like they’re already dead; nobody has checked the pulse and filled out the paperwork yet.
A huge chunk of Apache is Java libraries.
Some projects are just academia doing academia things; they graduate, the original people move on, and the project dies. Others are corporate donations, including the occasional “we don’t want to play with this anymore; maybe Apache can keep it alive” project.
That being said, the incubator graduation rate is still roughly 75–80%.
How useful or alive those graduates are five or ten years later is a different question.
Saying Apache is where software go to die is just wrong.
I believe spetz is on the project, so I'd like to ask:
Is this a MQ implementation, or can this be used in place of e.g. something like protobufs and iroh/tonic? Does it have something akin to grants/capabilities/authorization? Does it have RPC? Can I have services speak a more privileged set of instructions/commands and clients needing auth to speak dumber/more high level administrative commands just like gRPC?
Also, is the performance due to the (what I assume is custom) zero copy serialization?
The landing page simply states it's essentially "fast messaging" but beyond that it's not entirely clear when I'd use this or what its features/limitations are.
It's more like Kafka or Pulsar in terms of being the message streaming infrastructure (so an append-only log, not the message broker like, e.g., raw RabbitMQ). I think that the main docs page should give you a good understanding of how the data is stored/organized https://iggy.apache.org/docs/ - for example, on top of the topics, we also have "stream" which is just an extra hierarchy that can be used for something like multi-tenancy isolation or anything else depending on the use case. And yes, there's a built-in RBAC (read/manage particular streams, topics, servers, etc.). As for protocols, we have native support for TCP, QUIC, WebSocket (these 3 are stateful binary protocols), and HTTP as well.
There are a bunch of things that sum up to the overall performance gains - using Rust, thread-per-core architecture + shared-nothing (think of Seastar), custom zero-copy serialization, io_uring for disk * network I/O, and VSR-based consensus (inspired by TigerBeetle) - we simply build all this stuff from the ground up to make the most out of modern hardware and Kernel features, with a custom protocol on top (but the Kafka proxy/gateway is also WiP). And there are also connectors (sink, source), benchmarking runtime, CLI and so on.
Also, since we've been asked about this a lot, there's a high chance, that we might implement MQTT Gateway, just like we currently do for Kafka (proxy on top, as a separate runtime).
For those confused about what Iggy is, the post appears to be written for the Iggy community.
Iggy is basically Kafka written in Rust that has yet to reach the distributed, clustered, fault tolerant stage. Looks cool for sure, but it has a ways to go.
Sort of, but anyone familiar with Kafka should feel like at home, although there a few subtle differences when it comes to the transport protocol, hierarchy etc.
And VSR clustering is hopefully coming this week!
[OP] spetz | 14 hours ago
It’s been quite a journey, from a small Rust message-streaming experiment in 2023 to an independent Apache project with a growing community. And its biggest feature yet, being the Viewstamped Replication Revisited (VSR) clustering, is coming soon.
ramraj07 | 13 hours ago
hofo | 13 hours ago
theplumber | 13 hours ago
ramraj07 | an hour ago
kitd | 13 hours ago
otabdeveloper4 | 12 hours ago
skeeter2020 | 11 hours ago
https://projects.apache.org/projects.html
mrits | 8 hours ago
Thaxll | 6 hours ago
0x457 | 10 hours ago
A huge chunk of Apache is Java libraries.
Some projects are just academia doing academia things; they graduate, the original people move on, and the project dies. Others are corporate donations, including the occasional “we don’t want to play with this anymore; maybe Apache can keep it alive” project.
That being said, the incubator graduation rate is still roughly 75–80%.
How useful or alive those graduates are five or ten years later is a different question.
Saying Apache is where software go to die is just wrong.
junon | 13 hours ago
Is this a MQ implementation, or can this be used in place of e.g. something like protobufs and iroh/tonic? Does it have something akin to grants/capabilities/authorization? Does it have RPC? Can I have services speak a more privileged set of instructions/commands and clients needing auth to speak dumber/more high level administrative commands just like gRPC?
Also, is the performance due to the (what I assume is custom) zero copy serialization?
The landing page simply states it's essentially "fast messaging" but beyond that it's not entirely clear when I'd use this or what its features/limitations are.
[OP] spetz | 13 hours ago
There are a bunch of things that sum up to the overall performance gains - using Rust, thread-per-core architecture + shared-nothing (think of Seastar), custom zero-copy serialization, io_uring for disk * network I/O, and VSR-based consensus (inspired by TigerBeetle) - we simply build all this stuff from the ground up to make the most out of modern hardware and Kernel features, with a custom protocol on top (but the Kafka proxy/gateway is also WiP). And there are also connectors (sink, source), benchmarking runtime, CLI and so on.
languagehacker | 13 hours ago
[OP] spetz | 13 hours ago
hasanpiker | 12 hours ago
[OP] spetz | 10 hours ago
anony-123 | 12 hours ago
anony-123 | 11 hours ago
oulipo | 12 hours ago
0x457 | 11 hours ago
[OP] spetz | 10 hours ago
Also, since we've been asked about this a lot, there's a high chance, that we might implement MQTT Gateway, just like we currently do for Kafka (proxy on top, as a separate runtime).
genxy | 10 hours ago
Iggy is basically Kafka written in Rust that has yet to reach the distributed, clustered, fault tolerant stage. Looks cool for sure, but it has a ways to go.
[OP] spetz | 10 hours ago