

Show HN: Erlbus – scalable pub/sub message bus written in Erlang - candresbolanos
http://cabol.github.io/erlbus-erlang-message-bus/

======
Ixiaus
Did you consider using or contributing to
[https://github.com/ChicagoBoss/tinymq](https://github.com/ChicagoBoss/tinymq)?
I use it extensively for "inter-otp app pub/sub" and it's robust.

~~~
candresbolanos
Honestly, I didn't know about it, but I'll take a look at it for sure!

------
panamafrank
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?

~~~
candresbolanos
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...](http://www.julianbrowne.com/article/viewer/brewers-cap-theorem)).

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!

------
aeden
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?

~~~
candresbolanos
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!!

------
pki
Hi! Just fyi, your page is loading all element (css, js, image) over
[http://](http://) explicitly instead of https, therefore there are loading
issues for anyone visit the [https://cabol.github.io/erlbus-erlang-message-
bus/](https://cabol.github.io/erlbus-erlang-message-bus/)

