  In this work, we present an alternative distribution layer for Erlang, named
Partisan. Partisan is a topology-agnostic distributed programming model and
distribution layer that supports several network topologies for different
application scenarios: full mesh, peer-to-peer, client-server, and
publish-subscribe. Partisan allows application developers to specify the
network topology at runtime, rather than encoding topology-specific concerns
into application code. Partisan additionally adds support for more channels,
enabling users to distribute messages over multiple channels, sometimes in
parallel.
  We implement and evaluate Partisan in the Erlang programming language and use
it in the evaluation of three scenarios. The first scenario compares the raw
performance between Distributed Erlang and Partisan, and shows that Partisan
performs on par with or better than Distributed Erlang. The second scenario
demonstrates that distributing traffic over multiple connections enables
Partisan to perform up to 18x better under normal conditions, and up to 30x
better in situations with network congestion and high concurrency. The third
scenario demonstrates, using existing applications, that configuring the
topology at runtime allows applications to perform up to 13.5x better or scale
to clusters of thousands of nodes over the general-purpose runtime distribution
layer.
