I’m in a similar situation. We have a working product (an embedded device), that will not scale, but has to soon.
I’ve looked into several tech-stacks, and now I’m convinced, that Elixir/OTP is the best fit for us.
What first aroused my interest was this interview with Peer Stritzinger (who just became an EFF board member btw.). Here is an excerpt:
Paolo – What are the benefits and the drawbacks one can experience by using Erlang instead of C for Embedded Systems?
Peer – The benefits are many, you get much more done in the same time. (…) That Erlang/OTP has industrial strength implementation, well most of the Embedded Systems I work with are used in industrial use cases. (…)
Then there are the whole Erlang/OTP fault tolerance and fault isolation features. (…)
Plenty of OTP’s infrastructure features are needed in Embedded Systems, it’s like it was built for them. Which it actually was because the phone switches Erlang was invented for are very similar to todays Embedded Systems.
Also maintainability: Embedded Systems usually have to be maintained for 10-15 years, sometimes even longer. A system written in Erlang is much more maintainable than a system of same complexity that is written in C.
A lot of current Embedded Systems software only manages to deal with all this by being very simplistic, they have a hard time with the modern connected world. (…)
When I read this I looked into Erlang and I had zero fun, so I forgot about it (I did not know of Elixir, which was pre 1.0 at the time).
Some years later I’ve seen this talk: The Soul of Erlang and Elixir • Saša Jurić and I heard about https://www.nerves-project.org (greatly simplifies Elixir development on embedded devices).
So while Elixir is most known for Phoenix, it has great potential in building software systems (see the talk) and embedded systems. What one (wo)man can do in one day with Elixir/OTP/nerves he can never do with C. The embedded software scene is very slow moving. While you web-guys have a new (best) something every week, C gets updates once in decade. So new things (Elixir) will be adapted slowly. But: good things will prevail eventually. Elixir/Erlang/OTP will gain more attention besides web-dev. The whole thing is just too good, it will not go away.