Hacker News new | ask | show | jobs
by cyunker 3397 days ago
Not the OP, but I work on the same team.

The edge servers are not clustered and share no state. We require at least 2 servers as minimum for fault tolerance.

2 comments

Did the need for edge server arise from the fact the a service like https://aws.amazon.com/elasticloadbalancing/applicationloadb... didn't exist back then ?
Well we need edge servers to handle the persistent websocket connections which last through the life the player session.
yeah the ALB provides that feature as well. I just checked. it was released in Aug 2016. So clearly before that time your setup makes a lot of sense.

I am wondering if the ALB would be the preferred method now, if you were to redo it ?

Right, ALB were introduced after we built RMS. We would have to re-evaluate the ALB stability/cost/scalability - but definitely something to consider.
Thanks for replying!

So what happens to a player session when an edge server dies?

Do you have a way to rehydrate the session on a different server?

When the edge server dies player will reconnect to another node (load balancer will select a healthy one this time). In the same time RMS will detect that the session got lost in an abrupt way and will buffer any outgoing messages addressed to that session for a short time, just in case when player reconnects.