| This is really interesting for small scale projects. If you are a solo Dev and really want/ need data streams than you can only chose between Kafka and Redis Streams at the moment. While there are a lot of client libraries for Kafka for nearly every programming language, you really don't wanna manage your own Kafka instance and, to be fair, it really feels like overkill. So RabbitMQ seems to fit into the same spot as the Redis Streams do:
Easy manageable and usable streams, even for smaller projects. Really hope that this will be usable in many different client libraries soon. |
There are some missing features compared to Kafka (no dynamic rebalancing of partitions being the top one), but they're also rolling out some new features that Kafka does not have, such as transformation pipelines [2].
NATS's brand new JetStream [3] feature is also looking very promising. It uses Raft internally. NATS itself is rock solid, and JetStream builds on that foundation.
NATS also has very interesting support replication topologies, meaning you can build graphs of streams that each feed in other streams, so you can do the publishing and consumption in different locations, with different availability constraints.
[1] https://vectorized.io/redpanda
[2] https://vectorized.io/blog/wasm-architecture/
[3] https://docs.nats.io/jetstream/jetstream