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
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.
hauleth
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! ![]()
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.
Popular in Discussions
Other popular topics
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #channels
- #elixirconf
- #exunit
- #discussion
- #code-sync
- #javascript
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixir-ls
- #phoenix_html
- #iex
- #blog-post
- #graphql
- #genstage
- #ai
- #websockets
- #supervisor
- #advent-of-code
- #elixirconf-us
- #distillery
- #processes
- #forms
- #api
- #metaprogramming
- #security
- #performance










