
How Elixir Helped Us Scale Our Video User Profile Service for the Olympics - onlydole
https://medium.com/software-sandwich/how-elixir-helped-us-to-scale-our-video-user-profile-service-for-the-olympics-dd7fbba1ad4e#.zdway598z
======
rdtsc
> reduced from 93 containers with 2GB of RAM to 33 containers, 30 (with 2GB of
> RAM) for the RoR routes and 3 (with 1GB of RAM) for the Elixir POST route.

Nice, that's tangible direct money-in-the-pocket results you can take an owner
and make a case for a technology. Can talk about functional features, or
advantage of actor based paradigm for concurrency but something tangible like
that is hard to beat. They might answer with something like "I don't know
anything about beams and elixirs but this looks good for the bottom line,
let's adopt that".

~~~
emerleite
Hi rdtsc, I'll write a detailed article about the implementation, as I said in
the original article. When it's ready, I'll put here, ok?

Cheers,

Emerson

~~~
rdtsc
Thanks for sharing, Emerson! Looking forward to reading more on it. These
kinds of success stories help grow the community and it is just exciting and
fun to read.

------
user5994461
Not a case for Elixir.

Just a standard case for using fast compiled languages
(Java/C#/Erlang/Scala...) vs slow interpreted mono-core languages
(python/ruby/php...).

Python and Erlang shop here. Last time I was performance testing some python
applications.

2-3 ms for decoding the request (gunicorn internals) + 0.5 for flask + 0.3 ms
for newrelic + 0.2 ms for sentry + 0.5 ms spent in the application code (a
simple return "hello").

That's a total of 2-5 ms of power and time wasted, not running the application
code and creating latency for all calls.

Add that the webserver has to fork to X processes to handle requests in
parallel because each request is blocking by design (cf. "global interpreter
lock" and common webservers internal).

When the ecosystem (webservers/interpreter/languages) is slow & ineffective
(i.e. ruby/python/php). So will be all the applications written on it.

It's trivial to double the performance and half the hardware by switching to a
better ecosystem.

~~~
emerleite
Hi. For sure It could be done using Java, Go, or another language with a
better runtime. The purpose of this article is to encourage Ruby developers to
go ahead and try Elixir as an alternative because it's being the cutting edge
for this community. So, a short answer could be yes, Go, Java or Elixir
whatever, but all software rewrites depend on which team is involved and their
expertise, etc.

Cheers,

Emerson

