[erlang-questions] What makes erlang scalable?

Yash Ganthe <>
Sat May 9 15:40:38 CEST 2015


I am working on an article describing fundamentals of technologies used by
scalable systems. I have worked on Erlang before in a self-learning
excercise. I have gone through several articles but have not been able to
answer the following questions:
1. What is in the implementation of Erlang that makes it scalable? What
makes it able to run concurrent processes more efficiently than
technologies like Java?
2. What is the relation between functional programming and parallelization?
With the declarative syntax of Erlang, do we achieve run-time efficiency?
3. Does process state not make it heavy? If we have thousands of concurrent
users and spawn and equal number of processes as gen_server or any other
equivalent pattern, each process would maintain a state. With so many
processes, will it not be a drain on the RAM?
4. If a process has to make DB operations and we spawn multiple instances
of that process, eventually the DB will become a bottleneck. This happens
even if we use traditional models like Apache-PHP. Almost every business
application needs DB access. What then do we gain from using Erlang?
5. How does process restart help? A process crashes when something is wrong
in its logic or in the data. OTP allows you to restart a process. If the
logic or data does not change, why would the process not crash again and
keep crashing always?

Most articles sing praises about Erlang citing its use in Facebook and
Whatsapp. I salute Erlang for being scalable, but also want to technically
justify its scalability.

Even if I find answers to these queries on an existing link, that will help.

Regards,
Yash
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20150509/fdf4aa55/attachment.html>


More information about the erlang-questions mailing list