Hello there!
I’m looking for opinions to decide whether Elixir makes a good case for my company.
We are an extremely small startup, 2 developers basically. We basically maintain a quite big database and plenty of algorithms programmed as cron jobs on multiple ec2 instances. Our problems normally involve plenty of services (sending mails, asking to the database, making http requests), so we need a good concurrency model.
To overcome PHP limitations, I introduced node js to my colleague, which turned out great (bastly improved algorithm speed). However, after some time I’ve seen that error handling in js is not really a pleasure. We can’t tolerate runtime errors, as the failure of one algorithm means the failure of other dependent big updates on other database tables. It’s not the end of the world, but those type of errors mean hours spent manually updating data, which is time consuming and not fun at all.
Therefore, I’m looking for a safe functional alternative which is easy to learn, scalable, excellent at concurrency and, most important, fun to program with, so my search brought me here. Basically I’m looking for a more maintainable functional nodejs (functional programming in typescript is quite horrible, so deno | compiled js is also discarded). I also value deploy simplicity, as with node it is just a git pull
and some occasional npm install
.
However, the following talk made me wonder a bit:
For web requests and web servers the let it crash mantra is okay, and I’m considering Elixir to replace our current node js express stack. But it is very important that both of us can produce maintainable and fault tolerant code, with little to no refactors. Something like “if it compiles, it works”, like rust.
So, knowing this, is Elixir a good fit for running those scripts? Take consideration that I am completely new to it (although I’ve experimented with haskell and purescript a bit), and after introducing this language I’ll have to teach it to my coworker.