KekKekington

KekKekington

If Epic Games used Elixir, could they handle the traffic?

Earlier today Epic Games released GTA V for free as an offer and their website almost immediately crashed. I’m still new to the world of Elixir and OTP so it got me wondering: if they used Elixir for their store backend, could they’ve handled the traffic? Of course it could also depend on how their OT scales but I’m curious about what more experienced Elixers have to say about this.

Most Liked

Nicd

Nicd

The answer is, we cannot say. Elixir is not a silver bullet. For example Elixir in itself cannot prevent the database or caches from being overloaded. Sure it provides you with tools to handle concurrency easier than some other technologies but to really scale you need to put in work and most often your database ends up being the bottleneck anyway.

18
Post #7
hauleth

hauleth

No

It was a pleasure helping you

10
Post #9
dimitarvp

dimitarvp

Elixir, by its nature of living inside the BEAM VM, would be able to handle traffic close to what a machine’s network could handle before buckling, all other things being optimal (so, not being bogged down by connection limits to a database). And since the runtime (the BEAM) does its best to give fair treatment of all processes – in this case network requests – I believe that yes, their server(s) could have handled more load.

Many other tech stack just start timing out when faced with too much traffic. Back when working with Ruby on Rails with the Puma server, the scenario of having a pool of 50 workers but happened to get a lag spike of 1000 users almost at the same time was met with “oh well then, bad luck” and a shrug from the programmers and the business owners. A lot of tech has been invented that implements pooling – you get a request, put it for processing in one worker in the pool, and hope that it won’t take 30 secs before the next waiting network requests time out from their client app. It’s basically how most of the world’s public-facing services work. Welcome to the glorious world of programming! :003:


I never did work on something in Elixir that made a server buckle under load and I know Elixir is not magic and would still crash eventually, of course (there are physical limits after all). But from what I’ve observed during my work with Elixir, many times, is that it performs with much less lag during a stressful situation with a lot of load on the server. This alone would likely prevent most timeouts and the dreaded “service currently unavailable” on release days.

…All of that won’t help one bit if the server needs to open 50_000 connections to a DB server however.

As others said, we simply don’t know the circumstances.

I did once scale an app to 5 servers with independent caches (local / per-node) and that seriously improved the latency when that app was having bursts of traffic. But if your app relies on a limited external resource then the language of choice matters very little.

Where Next?

Popular in Discussions Top

Donovan
Hello everyone, I’m so glad to have discovered this awesome community. Thanks for creating it! This is my second post, and apologies for...
New
thojanssens1
It would be nice to be able to define a redirect from one route to another from the router.ex file. E.g.: redirect "/", UserController, ...
New
crispinb
On reading dhh’s latest The One Person Framework it strikes me that Phoenix with LiveView is already pretty much this. However, never hav...
New
AstonJ
I’ve just started the Phoenix part of the utterly brilliant online course by @pragdave. On generating the Phoenix app he uses the --no-ec...
New
CharlesO
Erlang :list.nth simple, but 1 - based nth(1, [H|_]) -> H; nth(N, [_|T]) when N > 1 -> nth(N - 1, T). Elixir Enum.at … coo...
New
fireproofsocks
I’ve been working on an Elixir project that has required a lot of scripting. I usually reach for Elixir because I like it more (and in th...
New
Qqwy
I would like to spark a discussion about the static access operator: .. For whom does not know: it is used in Elixir to access fields of...
New
joeerl
I’m playing with Elixir - It’s fun. I think @rvirding does give Elixir courses these days. Re: files and database - when I given Erlang ...
New
New
kostonstyle
Hi all How can I compare haskell with elixir, included tools, webservices, ect. Thanks
New

Other popular topics Top

danschultzer
None of the current solutions worked well for me, so I went ahead and built a user management system from scratch. This project took far...
548 29603 241
New
lessless
I believe there are people here who are dealing with CSV files import on the daily basis, and since Excel is a really popular tool there ...
New
minhajuddin
I have seen a lot of code which picks the first element from a list using Enum.at(0) instead of List.first. Is there a reason why people ...
New
freewebwithme
Using vs code and installed ElixirLS: support and debugger. And I got an error popped up on start up says Failed to run ‘elixir’ comma...
New
nobody
Hi! In PHP: $_SERVER[‘SERVER_ADDR’] - in Elixir? Searched the docs for ip address and the web, no good results. Thanks!
New
ashish173
I am using Ecto timestamps with postgres, I can see the timestamps() use the :naive_dateime but for my use case I wanted to store the ti...
New
rms.mrcs
Hi, I need to transform a list of numbers into a map where the keys are the indexes and the values are the original values of the list. ...
New
PeterCarter
There are pre-rolled solutions for other frameworks that do work. However, Phoenix does not seem to have these. Have people had good expe...
New
sergio
Kind of like when jquery came out, it was super necessary. Existing drag and drop libraries have a bunch of baggage to support old browse...
New
lanycrost
Hi everyone! I need implement if…else if…else condition from my elixir code, and anymore of this control flow structures not work proper...
New

We're in Beta

About us Mission Statement