How many servers do you have with Hetzner to manage 20,000 websocket connections? Also, did you ever have data loss in your large database because of hard drive failure?
Yup, I switched to phoenix lately. Works as advertised. I didn't even mess much with any kernel options. I still have most of my stack on ruby (on rails), but I bridge more and more things with elixir app (and phoenix), mostly using redis queues. As mentioned just 2 boxes are doing ws pushing currently, they also serve the app, one additional server also serving app but mostly static files, DB server, DB-slave and the app logic (which in my case is mostly fetching data and calculating some stats).
Unfortunately, even though there are some fallbacks and it seems to be pretty reliable, these servers are pets rather than cattle.
Two are doing just fine with the current stack (elixir), I actually have more problem with gigabit connections getting saturated at some points, but that's just my failure to optimize data that's being sent. Before that I was using nginx module (nginx-push-stream-module) which is also great and way ahead of any other out-of-the-box solution that I know.
Every server has RAID1 by default, plus I keep postrgresql slave on another box and I try to keep up to date backup. I actually never experienced a drive failure there (I currantly have ~10 boxes), but on my dev server at home which runs the same service I got I guess 5 HDDs failures already. Just two of them were server-grade though.
That said, it depends on the stack, the level of optimizations and how much each websocket requires...
I'd love to know too though (both the # of servers and the other details)