As I'm getting deeper into exploring and understanding the erlang "infrastructure" on which elixir is built, I'm often finding myself laughing at how it solves so many of the details that comprise a modern web app and a lot more besides.
At the top level, it has built in clustering, so you can just throw nodes at it to scale. Alone, that would create headaches, but it has its own supervisors that can be configured into a hierarchy with rules to self-heal all the way down to a "process" which might be only a single spawned function. Yet each parent can also supervise its children; you decide. Building that out of traditional components would be hard work.
Erlang also has its own in memory k/v store (ETS), which also replicates across the cluster, and which can be supervised. The store has a permissions system allowing you to control which processes have access to which data. Then there are two more data stores (Dets, and Mnesia), one disk based, which again self-manage.
I've only scratched the surface so far. I grabbed the phoenix (elixir's web framework) book from the pragprog book sale and hope to get started with it this weekend.