[erlang-questions] high availablity the erlang way

Paul Mineiro <>
Thu May 24 18:00:49 CEST 2007


Hey, I'm just learning Erlang, and have a basic question about high
availability.

I'm wondering what the "Erlang way" for providing a highly available
service is.  By this I mean Erlang node providing service A wants to talk
to a set of (N > 2, identical) Erlang nodes providing service B.  Any node
providing service B might be taken down for maintenance or removed
entirely and new nodes providing service B might be introduced for
scaling purposes.

I've seen parts of the OTP that ensure that 1 copy of an application is
running somewhere on a set of nodes, but I found anything that directly
address the above.

I could have A talk to B via UDP and use a load balancer, but that does
not feel very Erlang-y.

I do see how combining primitives such as nodeup/nodedown messages,
locally registered process names, whereis, etc. I could assemble and
maintain a list of providers of service B on each A node, and then
load balance between the providers.  Since I don't see anything that
does this already I think 1) i'm missing it, or 2) something about
Erlang makes this entire line of reasoning moot.

Thanks in advance, Erlang high school football rulz, etc.

-- p



More information about the erlang-questions mailing list