I’m interested in learning more about the benefits of using Elixir in building large-scale distributed systems. I have some experience with Elixir and functional programming, but I’m still relatively new to the world of distributed systems, and I’m curious to hear from others who have experience in this area.
Specifically, I’m hoping to learn more about how Elixir’s concurrency features and fault-tolerant design make it well-suited for building distributed systems, as well as any specific challenges or trade-offs that developers may face when using Elixir in this context.
In terms of background, I’m currently working on a project that involves building a distributed messaging platform for a client, and I’m trying to decide which technology stack to use. I’ve heard good things about Elixir, but I want to make sure I fully understand the benefits and drawbacks before making a decision.
If anyone has experience using Elixir for large-scale distributed systems, I would love to hear your thoughts and insights. Also, if you have any relevant resources (such as articles, tutorials, or case studies) that you would recommend, please feel free to share them.
Sadly there is no easy answer for that. Without understanding the scope of the project and requirements it is very hard to advice you whether using elixir is a good choice or bad. There are few rules of thumb that I usually follow:
Ensure that there are libraries for what you want to do, for example if your project has to sign some documents with a specific signature, research whether there is at least an experimental version of a implementation in elixir;
Be ready to invest time in learning new things, elixir and especially erlang ecosystem is huge at this point and it has a long learning curve if you want to go into big scale.
As for everything else it highly depends on the approach of distribution you want to build, so there is no way to summarize it in a sentence.
I risk sounding trite, but I think you should be using a tech stack that you’re familiar with.
Elixir sounds like a good and fun fit for building distributed messaging systems, and OTP powers some seriously impressive pieces of software… But it doesn’t look like a good idea to learn a completely unfamiliar technology while building a solution for a client.