News for hackers. Stuff that matters.
Re:Ask HN: Why do we need so many message brokers? by xyzzy123 on Thursday May 28, 2015 @02:37PM (#9620170)
Some of these things are not like the others:

ActiveMQ / RabbitMQ / Apollo - "Traditional" message brokers. These provide AMQP, STOMP, MQTT etc. Safe choices for enterprisey dev. Think of them as standards-based infrastructure, like "web servers". There are good reasons to have various commercial and open-source options.

Theoretically (if you stick to core features), these are "plug and play". Most people really decide between them based on cultural factors. You might use IBM's broker because they're your preferred vendor or ActiveMQ because you're a Java shop and you prefer open-source. Maybe RabbitMQ because you because you like the community and so on.

ZeroMQ / nanomsg - Not a traditional "message broker", more like a "messaging construction kit". It supplies framing, patterns and some flow control, you build the rest.

Kafka - This is really "log as a service"[1], it just happens that you can also use it like a message broker. You'll probably structure your consumers as idempotent queue processors so you can get replayability.

[1] In the sense of transaction log.

Re:Ask HN: Why do we need so many message brokers? by dudul on Thursday May 28, 2015 @02:35PM (#9620149)
Why do we need so many programming languages? Java, C++, Python, Scala, Elixir, Haskell, Clojure, Ruby

Why do we need so many browsers? Firefox, IE, Chrome, Safari, Opera

Why do we need so many laptop manufacturers? Apple, Dell, HP, Asus

Re:Ask HN: Why do we need so many message brokers? by twunde on Thursday May 28, 2015 @03:43PM (#9620639)
As xyzzy123 mentioned, many of these message brokers have different feature sets and thus have different use cases. In general, most companies will pick a message broker based on 1) Their use-case needs 2)The support for the programming language and system environment (.net, linux, cloud). For instance if I'm moving terrabytes of data, I'm probably picking kafka.
Re:Ask HN: Why do we need so many message brokers? by NathanKP on Thursday May 28, 2015 @04:25PM (#9620927)
Some message brokers are highly optimized for "at most once" delivery, where you want to receive the message between 0 and 1 times but you NEVER want to receive the message twice.

Others are optimized for "at least once" delivery where you MUST receive the message at least once, but you don't mind if you receive it more than once.

Additionally, different message brokers have varying levels of support for clustering, and varying responses to failure scenarios like network partions.

Re:Ask HN: Why do we need so many message brokers? by CGamesPlay on Thursday May 28, 2015 @01:44PM (#9619784)
We don't. There's no central authority that makes message brokers; it's a group or individual who wants to make a new one that has some specific characteristic that isn't replicated elsewhere (anything from throughput and latency through language and creators).

Similar question: Why do we need so many JavaScript frameworks. Answer is the same: we don't.

Re:Ask HN: Why do we need so many message brokers? by readme on Thursday May 28, 2015 @03:21PM (#9620486)
As others have pointed out, it's competition.

This is why when you choose technology for a long term project you should consider whether it's still going to be around in 5 years, if not you might inadvertently become the maintainer.

Re:Ask HN: Why do we need so many message brokers? by NTDF9 on Thursday May 28, 2015 @02:20PM (#9620047)
We don't need them. Only 1-2 of these will actually survive.