[erlang-questions] Creating a fault tolerant poker service

Cary Cherng ccherng@REDACTED
Fri Mar 7 03:09:03 CET 2014


What is the idiomatic way to create a fault tolerant poker service with Erlang?

One could use a single server type, a bunch of machines for a
fragmented mnesia table that stores the state of each game. This
ensures that state is replicated to guard against machine failures.


But it still leaves questions open:

* How are games created so that they are load balanced across the
servers so that cpu usage is relatively even? If game creation goes
through some special server that also keeps track of where all games
are so it knows loads on the backends, then that special server is a
potential single failure point.

* And a similar problem. If a user is disconnected, how does it find
which games it is part of when it reconnects without some special
server to track games.


I am aware that others have made poker services with Erlang such as
OpenPoker. But what would be the right idiomatic way of architecting a
poker service to be resistant to machine failures assuming you were
starting from scratch?

The questions I asked above imply features that I would expect many
distributed systems would need. That is a kind of abstract pattern.
Are there maybe design patterns for these kinds of distributed
systems?



More information about the erlang-questions mailing list