Sanjibukai

Sanjibukai

Message Queue or an Event Bus system?

Hello everybody,

I tend to see Message Queues (like RabbitMQ) being relevant when we want to make communicate different apps through events (the apps might be running on different servers or as microservices or even on client apps).

However (and hopefully) with Elixir apps I tend to have one single “app” (maybe umbrella apps) and in this case the Message Queue system might be more of what we are calling an Event Bus..

So I wanted to know if it still makes sense to use a Message Queues (like RabbitMQ) in this context?
Or does it better to use some kind of Elixir baked solutions (GenServers, Phoenix PubSub, some external library like event_bus)?

I would love to hear if you are using Event Bus and if so what you are using?

Most Liked

randito

randito

I think if you’re crossing lines – where a line might be a different language, a different node, a different speed of execution – then something like RabbitMQ might be a better choice. It’s got clients in lots of different languages.

stefanchrobot

stefanchrobot

If you decide to hide it behind some kind of interface (e.g. MyApp.EventBus) you can pick whatever tool works for you. Then I think it boils down to whether you need persistent events and the expectations towards latency between sending and receiving the event.

dimitarvp

dimitarvp

Umbrellas don’t prevent you from sending messages to other processes without using any external message queue software.

As @stefanchrobot said, it depends if you want persistence. If you don’t, plain old GenServers will serve you more than adequately enough.

Where Next?

Popular in Discussions Top

andre1sk
A big advantage to Elixir is all the distributed goodness but for many applications running on multiple nodes having integrated Etcd, Zoo...
New
AngeloChecked
What learn first? Rust or Elixir Hi Elixir community! I’m here because i want learn a new language. I’m a junior developer and mainly i ...
New
Fl4m3Ph03n1x
Background This question comes mainly from my ignorance. Today is Black Friday, one of my favorite days of the year to buy books. One boo...
New
gausby
I asked this very same question on twitter and got some interesting feedback, but I thought it would be a good question to ask here as we...
1207 39297 209
New
Ankhers
Just a little information upfront. Generally speaking, if I feel like I need to either break a pipe chain or use an anonymous function in...
New
tmbb
This is a post to discuss the new Phoenix LiveView functionality. From Chris’s talk, it appears that they generate all HTML on the serve...
342 18146 126
New
und0ck3d
Hello everyone! A few days ago I’ve created a topic here about how people were creating CMSs with Elixir and Phoenix. I’ve been studying...
New
Owens
Hello all, I am developing a new mobile app with Flutter frontend and Phoenix backend. The mobile app has real-time task management and c...
New
AstonJ
Seen any cool LiveView demos, sample apps or examples? Please post them here! :003:
New
sergio
Kind of like when jquery came out, it was super necessary. Existing drag and drop libraries have a bunch of baggage to support old browse...
New

Other popular topics Top

danschultzer
None of the current solutions worked well for me, so I went ahead and built a user management system from scratch. This project took far...
548 29377 241
New
New
Harrisonl
We have an ECS cluster with 4 services, where each task joins a single cluster, via discovery ECS discovery service. Currently when I de...
New
Nvim
Anybody knows a comprehensive comparison of Django and Phoenix, thanks for the help. Where are they similar? Where do they differ the m...
New
gshaw
What is the idiomatic way of matching for not nil in Elixir? E.g., First way: defp halt_if_not_signed_in(conn, signed_in_account) when...
New
chrismccord
Phoenix 1.4.0 released Phoenix 1.4 is out! This release ships with exciting new features, most notably with HTTP2 support, improved deve...
688 30877 112
New
jay1
Why is it that the mnesia database isn’t the most preferred database for use in Elixir/Phoenix?
New
aalberti333
As the title describes, I’m trying to run Enum.map() over a list of key/value pairs, where the value is a map. My data looks like this: ...
New
hariharasudhan94
I would like to know what is the best IDE for elixir development?
New
openscript
Hello! Sorry for this astonishing simple question, but I’m really stuck. I try to set up the intellij-elixir plugin, but I don’t know ho...
New

We're in Beta

About us Mission Statement