top | item 39262998

(no title)

ananthakumaran | 2 years ago

> For example, you don’t need sidekiq or Redis as Elixir/Erlang is a concurrent, distributed platform. This simplifies operations and is cheaper to run.

This is simply wrong. You need a Sidekiq alternative (There is Exq which is protocol compatible with Sidekiq, others like Oban are available as well) because Erlang processes are not durable, nor do you get retry, concurrency control, etc. Everyone loves to claim Erlang is distributed and you can connect them so Redis is useless? but this is rarely utilized in the context of the web server. I have been using Elixir for more than 5+ years now, and I have never seen a valid use case for connecting two nodes.

In reality, the tech stack of the Elixir web app is mostly similar, but it makes life a lot easier if you ever have to deal with any kind of concurrency. Making concurrent requests is as simple as doing a map over a list and they just work, unlike other languages where you have to double-guess whether the library you use is thread-safe.

discuss

order

cpursley|2 years ago

> have never seen a valid use case for connecting two nodes

Have you never worked with websockets, LiveView, caching, OTP, etc? Those require distributed Elixir.

And okay, need durability? Oban - which runs without Redis and kicks the crap out of Sidekiq.