Hacker News new | ask | show | jobs
by ipsun4 1553 days ago
I wholeheartedly agree.

For a MVP, it's hard to beat Phoenix Framework channels and Liveview, and if you want to completely decouple the UI from the backend with something like a native app, or separate webapp, it's absurdly easy to just add the resources to a route that goes through the :api pipeline instead of the :browser.

Once you are ready to outgrow a single machine deployment, the BEAM clusters so well in a way that works the same on your dev machine. Also if you want to get really complicated multi-service design, Umbrella apps are leagues better than docker-compose setups that I have had on dev machines that make a 16G Macbook pro instantly put everything into swap.

1 comments

> Also if you want to get really complicated multi-service design, Umbrella apps are leagues better than docker-compose setups that I have had on dev machines that make a 16G Macbook pro instantly put everything into swap.

Not sure I feel the same warm feelings about umbrella apps and I definitely don't think you can compare them to general-purpose container orchestration like docker-compose, but that's totally an optional part of the language.

Otherwise, yes, Elixir/BEAM is an excellent soft real-time environment for developing chat applications. If your scale goes off the charts (millions of concurrent users), you can extend with Rust for the slower operations in your critical path. See https://discord.com/blog/using-rust-to-scale-elixir-for-11-m...

As mentioned, Phoenix Channels is a great place to start and will get you very far. The other nice and unique things in Elixir & Phoenix (OTP, LiveView, etc.) are just a bonus.