A
A
Alexander2017-07-30 12:34:21
Erlang
Alexander, 2017-07-30 12:34:21

Online chat for websites: node.js / erlang / other?

We make a web service: a widget for embedding on client sites. There will be an online chat function. Like jivosite.ru
There is a question on what to write a messaging server. Now we have two options:
Node.js.
Pros: popular language, you can find a developer relatively quickly, not expensive.
Minus: it is not yet clear how to competently do load balancing between multiple servers. So that the interlocutors can connect to different servers, while communicating without problems, connect new interlocutors to the dialogue.
Erlang
Pros: judging by the description of the language, it is most suitable for scaling such systems. The fact that Yandex and FB use it also says something.
Cons: no one on the team has dealt with such a language. The solution is offered by a third-party developer, unverified. There is a high probability, if it merges, to be left with an incomprehensible code that there is no one to finish. I ran through the freelance exchanges, there are very few Erlang developers.
Questions:
1. Please help, what is the best place to stop?
2. Perhaps there are solutions to node.js?
3. Or is it not so scary with Erlang?
4. Are there other suitable technologies?
5. Do you know someone who can help pay or take on a project?
PS: I don't know if the rules here allow you to search for contractors. If anything, I ask the administration to excuse and overwrite point 5.

Answer the question

In order to leave comments, you need to log in

5 answer(s)
A
Andrey Nikiforov, 2017-07-30
@alexperec

it is not yet clear how to competently do load balancing between multiple servers

How many connections do you have? Up to 100k, you can safely shit-code on anything from the list. Up to 300k you can shit code on Erlang. All this will quietly work on one machine.
Here is an old post about 1m on a machine with 128GB/40 cores on Phoenix: phoenixframework.org/blog/the-road-to-2-million-we...
This is taking into account the overhead on Phoenix yet. Remove it, write in pure Elixir, and it will be even easier.

O
Oleg Gamega, 2017-07-30
@gadfi

There is a high probability, if it merges, to be left with an incomprehensible code that there is no one to finish. I ran through the freelance exchanges, there are very few Erlang developers.

then what is the question?
are you sure you need to scale as much as fb ? By the way, VK chats used to live on node.js, now on go

F
furrya_black, 2017-07-30
@furrya_black

Node.js in your case (both for "quickly find a developer" and for the technical part).
FB, Yandex, vk is not an indicator. Other resources and scope. As a rule, frameworks / tools from such mastodons are written by them for their own needs and are sharpened for the same needs.
PS:
Quick to find and not expensive === poor quality work.
Node.js is deceptive in its simplicity.

V
Viktor, 2017-07-30
@Levhav

I dare to offer for consideration my project comet server . With it, you can write php code without worrying about websockets. Here are the results of load testing
. As for scaling, you could think over the architecture, regardless of the tool, in such a way as to be able to transfer the sites of individual clients to separate servers. Thereby distributing the load across different servers.
If you have any questions about CppComet, write, I can tell you how to use it more efficiently.

S
Sergey, 2017-07-31
@begemot_sun

Hello, Alexander.
For the public: I am the same developer who offers Erlang.
Let's now point by point:
1. Erlang :)
2. I'm not an expert in node.js, I won't say. I already wrote to you in letters why Erlang.
3. Absolutely not scary. "Erlang learns in 2 weeks, that is, you can learn up to 26 Erlangs in a year" ( tonsky.livejournal.com/281876.html )
4. Probably there.
5. I would doubt your adequacy. Having provided some kind of mockup admin panel, you ask for an estimate of the cost and scope of work on the chat server. At the same time, I am absolutely sure that I have enough information.
You can also always find the developer's erlang in the Russian Erlang mailing list:
https://groups.google.com/forum/?utm_source=digest...
Good luck.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question