I am looking to develop a SMS application which needs to send close 100 million SMS in about 12 hrs. This roughly translates to about sending 2000 SMS per second with a need to take this to 5000 SMS per second.
We will be using SMPP protocol to connect to SMS centers ( SMSC) hosted by telcos.
I was contemplating of using the following
- Java ,RabbitMQ
- Erlang ( no need of RabbitMQ)
- Elixir ( no need of RabbitMQ)
Give the app needs to be highly scalable & distributed, based on the research done I was looking to either write in erlang or elixir. I am pretty much new to functional programming and also new to erlang and elixir. I do understand elixir uses erlang VM but in addition has better tooling support. Given this , I am leaning towards picking up elixir.
Given all of the above, I was looking for some guidance on my thought process.
I wouldn’t say “better tooling”, because almost all tools that work on Erlang can work on Elixir as well (with some translation in the meantime, it do not always work other way around). Elixir is just different language that complies to the same VM as Erlang, it is similar to Java vs Clojure or C# and F#. And usage of Erlang/Elixir do not mean that you do not need RabbitMQ (which is written in Erlang), because it depends on your requirements. You can also use Erlang and Elixir in the same project at ease (for example of such project see Elixir itself, which is partially written in Erlang).
Like @hauleth said, there’s not really a hard “Erlang vs Elixir” split; you’re going to want to at least be able to read Erlang documentation well enough to evaluate, for instance,
Thanks @hauleth & @al2o3cr for prompt replies.
Will definitely go thru the smpp related libraries mentioned.