I
I
Igor Nikitin2016-12-10 00:34:33
Erlang
Igor Nikitin, 2016-12-10 00:34:33

Is elixir suitable for a highload web service?

Good day, Colleagues!
I would like to know your opinion about using the Phoenix framework (Elixir) for a very loaded web service.
I myself am a fan of the ruby-approach to development, but since you can’t call it productive at least to some extent, I chose an intermediate version in the form of PHP 7.1, but I came to the conclusion that it doesn’t take out .. you have to raise too many instances to cope with the load at least a little. I wanted to rewrite it in Crystal, but recently for some reason it has stalled .. few tools are written for it, although the idea initially made me very happy, but most likely the reason is the implementation of the garbage collector, which does not allow you to work normally with streams (actually, like in ruby ​​itself).
From what I understand, elixir is more suitable for implementing performance websockets..
Maybe someone came across him in production and will tell you what is sensible. Maybe not even related to Elixir.
Thanks for your time and attention.

Answer the question

In order to leave comments, you need to log in

1 answer(s)
S
Sergey, 2016-12-10
@deberry

I am an erlanger. First, describe your case. It's just that anyone can generate pages, somewhere it's faster, somewhere it's slower. In general, you can rewrite everything in C / C ++, it will fly - I guarantee it.
On the Erlang/Elixir part. It's basically the same thing, just in a different wrapper. All this is done on the Erlang VM.
I think Elixir is currently more geared towards the web by having various kinds of libs like Phoenix or ORM Octo (so it seems?).
In Erlang, these are more low-level libs, but there is more freedom of creativity.
There are all sorts of N2O, Nitrogen, etc.
What's nice about these languages ​​is:
1. You don't have to use third party services to store state. Everything can be stored in memory.
2. You can easily parallelize the work on several cores (if the task allows it). No PHP will give such flexibility here.
3. You can be sure of reliability. You can control when the application will crash and when not.
4. Well, all sorts of benchmarks: www.ostinelli.net/a-comparison-between-misultin-mo...
5. Yes, even. Erlang/Elixir application can be transparently clustered on multiple machines, of course it must support it.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question