5 ms·
Show HN: Erlbus – scalable pub/sub message bus written in Erlang
- deleted 11y ago[deleted]
- pki 11y agoHi! 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/
- Ixiaus 11y agoDid 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 11y agoHonestly, I didn't know about it, but I'll take a look at it for sure!
- panamafrank 11y agoThis 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 11y agoEpidemic 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-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!
- aeden 11y agoVery 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 11y agoGood 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!!
- deleted 11y ago[deleted]