Agreed, it really is just an incredibly well designed language.
Been digging back in recently and between Phoenix, Plug and Ecto it's very clear how much care and thought when into the API/architecture. Truly a joy to work with.
Very interesting post. Could you elaborate more (maybe another blog?) on the DevOps perspectives on how to manage a prod Elixir/BEAM stack (CI/CD, scaling, dev vs test vs prod environment management)?
Looking for a combination role that crosses what is often considered SysAdmin and what is considered SRE.
We don't run infrastructure ourselves but have clients who are starting to run Wallaroo in production and we are looking to hire someone who is focused on making sure the end developer lifecycle experience is awesome.
This would mean touching everything from installation of the Wallaroo development environment through documenting best practices for running in production to contributing to the core Pony and Elixir codebases in order to add new functionality.
Not sure if this totally answers your question, but gigalixir.com might be able to help you with CI/CD, scaling, and prod environment management. I'm the founder.
I've been wanting to get into Elixir but my work has been building web apps using SaaS starter kits that come with billing, account management, social logins, multi-tenant and more out of the box. Are there any SaaS starter kits in Elixir? Examples in other languages include aspnet zero in .net, bullettrain in ruby and laravel spark in php.
Isn't Django a web framework like Elixir Phoenix that gives you the technical layers to build a web app? These are still great starting points for web apps but the examples[1][2][3] would be the ones I mentioned in my comment that give you the web app plus SaaS functions:
I'm pretty sure there isn't such a thing for Elixir.
And quite possibly there won't be something like it anytime soon, if ever. I get the impression that the Elixir 'ecosystem' is a bit more modular/manual in approach even when you compare Phoenix to Rails, which means, with all else being equal, a bit less of an out-of-the-box experience.
Of course in part this is because there are currently just fewer packages available for Phoenix. But I think it's also inherent to the 'culture'. It might never be as cookie-cutter in what it offers.
(but I'm still relatively new to the Phoenix/Elixir world, so I could be entirely wrong)
Possibly tangential:
Assuming one is sticking to AWS as cloud provider, wouldn't it be cost-effective and less devops to use AppSync, Lambda, Cognito instead of Elixir?
I ask because I am debating whether or not I should invest any time in Elixir, if many of the benefits of learning it are easily and cost-effectively available through AWS.
I'd suggest looking at Elixir/Phoenix if you have a problem with Rails that you think Elixir/Phoenix might be able to solve. Could be scale problems, reliability, real-time communication, etc.
I wouldn't suggest replacing your entire Rails app with Phoenix right away. If possible start with a service that may be having issues and migrate that over if possible.