I am so far merely an enthused observer, so I can't give any insights into the experience of delivering business software with it. Here's my observations though
- Engineers that work with this stack love it. The two most common issues I've seen are lack of static typing and difficulty in hiring
- Great for IO bound tasks due to collaborative scheduling. For CPU bound tasks performance is better offloaded to e.g Rust (see rustler)
- Exception handling is done by processes having supervisors. My mental model for this is similar to pods & deployments à la K8s, but at any abstraction level you want inside your component.
- Elixir pleases many crowds: ruby, FP, performance, resilience
- Phoenix (an elixir library) is seen as a next step from ruby on rails.
- Concurrency model is considered to be simple & powerful