Partisan is a scalable and flexible membership system and distribution layer for the BEAM. With Partisan, you can push the BEAM distributed actor model to achieve planet-scale geo-distribution.

Docs Source

Key Features

Partisan provides three key features and optimizations for building large distributed actor systems on the BEAM.

  • App-specific Overlay Topology Selection

    Select the appropriate overlay topology for your app at runtime while keeping the BEAM's programming model. You can choose between the provided topologies or build your own.

    • arrow_forward Full-mesh (~200 nodes): nodes are fully connected and use direct messaging.
    • arrow_forward Client-server (~1,000 nodes): a hub-spoke model where clients do not see one another and messages are routed through servers.
    • arrow_forward Peer-to-peer (~2,000 nodes): nodes partially connected using HyParView, message routing transitively through peers.
  • Named Channels and Affinitized Parallelism

    The BEAM distribution system allows only a single connection between a pair of nodes. Partisan overcomes this limitation offering multiple connections.

    • arrow_forwardA named channel is a set of one or more network connections
    • arrow_forwardEach named channel can be configured individually e.g. parallelism (number of connections) and compression level.
    • arrow_forwardPartition messages across named channels based on type e.g. separate control plane messages from user requests.
    • arrow_forward Maintain channel affinity: Partition actor communication amongst channel connections using an identifier.
  • Messaging Patterns and Delivery Guarantees

    Partisan offers support for message delivery patterns and guarantees.

    • arrow_forward Broadcasting: via its implementation of Epidemic Broadcast Trees.
    • arrow_forward Acknowledged delivery and retransmits using an in-memory message store.
    • arrow_forward Causal delivery (Experimental) using an in-memory casual store.

Reference/Academic Papers


  • Video Thumbnail

    Partisan: Scaling the Distributed Actor Runtime

    2019 USENIX Annual Technical Conference, Christopher S. Meiklejohn

  • Video Thumbnail

    Partisan: testable, high performance, large scale distributed Erlang

    Code BEAM SF 2019, Christopher S. Meiklejohn

  • Video Thumbnail

    Distributed Erlang: From Datacenter Applications to Planetary Scale Applications

    Christopher Meiklejohn

  • Video Thumbnail

    Rethinking the Language Runtime for Scale

    Erlang User Conference 2016, Christopher S. Meiklejohn