Hacker News new | ask | show | jobs
Show HN: Erlbus – scalable pub/sub message bus written in Erlang (cabol.github.io)
54 points by candresbolanos 3976 days ago
4 comments

Did you consider using or contributing to https://github.com/ChicagoBoss/tinymq? I use it extensively for "inter-otp app pub/sub" and it's robust.
Honestly, I didn't know about it, but I'll take a look at it for sure!
This is wonderful! I'm really interested in the distributed element of it. I understand riak core uses epidemic broadcast trees to provide consistency, but do you have a good example in how this would influence a microservice architecture?
Epidemic broadcast that you mention, usually happens when you have a fully connected topology and distribution model works with full replication. But the main advantage with riak_core is that you are able to set the replication factor and quorums, which enables you to setup different distribution models --like sharding or peer-to-peer replication + sharding (common case)-- and balance consistency/availability levels --please review CAP theorem (http://www.julianbrowne.com/article/viewer/brewers-cap-theor...).

In case of ErlBus, you can also set these parameters (replication factor and quorums), even the quorum of each operation (sub, pub, unsub, subscribers, etc.) can be set independently. So riak_core gives you the flexibility to choose the best distribution model depending on what you really need, and ErlBus inherits those features when you run it on top of riak_core.

So, you have to consider some variables to choose what distribution model to use: 1. Number of nodes 2. Network traffic (Messages/second) 3. Number of subscriptions (because both pg2 and gproc uses ETS tables)

Most of the cases is enough default ErlBus with PG2, but if you need a more flaxible and scalable distribution model, well, you probably should go for ErlBus with riak_core.

I really hope have answered your question, otherwise, you just let me know.

Thanks!

Very cool and potentially quite useful for me!

Out of curiosity, have you considered putting up something on the site comparing Erlbus with other options like RabbitMQ?

Good suggestion, I'll do that! Because there are significant differences between them, and the purpose of ErlBus isn't compete with RabbitMQ at all, they are different tools to drive different problems, so is very important highlight these differences. Thanks!!
Hi! Just fyi, your page is loading all element (css, js, image) over http:// explicitly instead of https, therefore there are loading issues for anyone visit the https://cabol.github.io/erlbus-erlang-message-bus/