How Discord Scaled Elixir to 5M Concurrent Users (2017)
A corollary:<p>As a mostly Elixir programmer for 2 years now, I find it quite amusing how the Kubernetes community tries their damnest to emulate Erlang&#x27;s OTP system -- going as far as to bolt stricter typing system on Golang even -- and try and reinvent Erlang&#x27;s &quot;let it crash and get rebooted&quot; idea.<p>I am however not at all convinced that &quot;let it crash&quot; is a good mantra when applied to entire containers. One such container can take 20+ seconds to restart and you can lose a lot more compared to the mini-processes Erlang&#x2F;Elixir have which are happily left to crash and [semi-]auto-recover. Imagine if that container was ingesting events and crashed when it had 5_000 in its in-memory queue and only managed to process 50-100 of them. Or imagine 100 transactions in progress being cancelled.<p>I applaud the hard work of the Kubernetes team, I am just not very sure they invest their energy in the right tech stack. Sure Golang is faster than Erlang&#x2F;Elixir -- by a lot, too. But is it not K8s idea to be fault-tolerant and not immensely quick? What does a Golang&#x27;s speed matter when a container needs seconds to reboot? In my eyes, K8s could have been written in Bash shell scripts... but I am probably missing something important.