[erlang-questions] Help with design of distributed fault-tolerant systems

Martin Karlsson <>
Thu Oct 8 09:21:00 CEST 2015

Hi Vance,

Thanks for your reply. And I agree that dealing with these things in the
client is more flexible.

> ...the clients are perfectly prepared to handle failures with retries and
> failover to other service instances
Unfortunately the client software is already out there so we are also tied
with a VirtualIP through Load-Balancer architecture.

High Availability from client requests are dealt with OK though as client
will retry on failure (albeit to the same VIP) and is routed to a server
which can handle it.

The problem is more internal gen_servers (lookup tables, global task
servers, mini message queues). Small state which is periodically updated
and needed to serve clients request (where data is largely same for every

Some Examples:

A background task which periodically fetches some information from an
external system and keeps the data in its state, there can only be one task
running globally (leader election?, failover?).

A  gen_server router where various data sources can add themselves so that
requests get routed to the correct db-source. Either all nodes most connect
to a global gen_server which holds the info or ideally the info is shared
among multiple nodes. Again should I push state to database (then why use a
gen_server at all?) or what sort of architecture is needed to cater for

Thanks again,
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20151008/1cf4ed40/attachment.html>

More information about the erlang-questions mailing list