Programming Distributed Erlang Applications: Pitfalls and Recipes
Paper i proceeding, 2007
We investigate the distributed part of the Erlang programming
language, with an aim to develop robust distributed systems and
algorithms running on top of Erlang runtime systems. Although the step
to convert an application running on a single node to a fully
distributed (multi-node) application is deceptively simple (changing
calls to spawn so that processes are spawned on different
nodes), there are some corner cases in the Erlang language and API
where the introduction of distribution can cause problems. In this
paper we discuss a number of such pitfalls, where the semantics of
communicating processes differs significantly depending if the
processes reside on the same node or not, we also provide some
guidelines for safe programming of distributed systems.