Distributed Programming

Derek Kraan

17 June, 9AM-6PM



One of Elixir’s most talked-about features is the ability to write fault-tolerant distributed systems. In this tutorial, participants will explore the basics of distributed programming on the BEAM, led by Derek Kraan. We will discuss the limitations of distributed programming, and the pros and cons of various possible approaches to writing distributed systems. During this tutorial we will apply our newly acquired knowledge to some sample problems in Elixir. We will start with the basics of message passing between remote processes, global process registries, supervision strategies in distributed systems, approaches for distributing state, and how to deal with common issues like network partitions.


Expertise: Intermediate

Target audience: Software Developers

Duration: 8 hours

Prerequisites: Practical experience of Erlang or Elixir


  • Understand the basic limitations of distributed computing
  • Understanding of when to reach for distributed approaches and strategies for mitigating complexity
  • Learn to apply distributed programming techniques in Elixir
  • Understand how common failure modes like network partitions affect distributed systems

Course Outline

The tutorial covers the topics of distribution in the BEAM virtual machine. Many topics are applicable to both Erlang and Elixir, although all code samples and most libraries discussed will be in Elixir. The course will cover the following theoretical topics:

  • Limitations of distributed systems
  • CAP theorem
  • CRDTs
  • Leader-election

The following practical topics will be addressed:

  • Message passing with remote processes in the BEAM
  • Global Registries
  • Global Supervision strategies
  • Distributing state
  • Dealing with network partitions

The course gives practical advice for programming distributed systems in Elixir. The tutorial includes time for exercises on each of the practical topics. The tutorial will be fast-paced, but there will be time for questions and some discussion during the exercises.

Experience level: