<

Chris Keathley

Distributed Systems and functional programming tinkerer. Senior Engineer at Bleacher Report

Chris is a software engineer building services and applications for Bleacher Report. Although he started out writing C for embedded systems, these days he spends his time in Elixir, Rust, Go, and Haskell. When not writing code for work, Chris can be found writing code for fun, talking about the joys of functional programming, playing pinball, roasting coffee, or building lego with his kids.

Upcoming conferences:

Chris Keathley
Code BEAM Lite NYC
Tutorial/ 30 Sep 2019
09.00 - 17.00

Building resilient distributed systems with Elixir

One of the most exciting features of Elixir is its ability to connect multiple nodes together. Because distribution is built directly into the language’s runtime, those of us in the Elixir world have access to a number of powerful abstractions for building distributed systems.

However, distributed Erlang comes with several caveats and warnings. We will demystify some of the warnings while reiterating others.

In this tutorial, participants will get hands on experience with distributed Erlang through building real solutions to real world problems.

You will learn how to harden their solutions against network and hardware failures using a test harness designed to inject failures into clusters. Whilst the goal is to provide an understanding of the primitives available in Erlang and Elixir for building distributed systems, we’ll also discuss some of the popular libraries available in the BEAM ecosystem.

 

OBJECTIVES

  • Provide insights into the tools available for building distributed systems
  • Learn patterns for building consistent and eventually consistent systems
  • Experience the different types of faults that you’ll see in the real world

 

PREREQUISITES

You should have a working understanding of Supervisors, GenServers, and other primitives in Elixir and Erlang.

 

TARGET AUDIENCE

Intermediate Erlang or Elixir developers who want to take advantage of the clustering abilities in OTP.

COURSE OUTLINE

The tutorial is broken into 4 distinct pieces of work. Each section builds on the previous and endeavours to provide real-world scenarios.

  • Connecting nodes, sending messages, and handling faults
  • Building low latency APIs with replication
  • Scaling replication with eventual consistency
  • Taking advantage of your computer by distributing work across the cluster
Chris Keathley
Code BEAM Lite NYC
Tutorial/ 30 Sep 2019
09.00 - 17.00

Building resilient distributed systems with Elixir

One of the most exciting features of Elixir is its ability to connect multiple nodes together. Because distribution is built directly into the language’s runtime, those of us in the Elixir world have access to a number of powerful abstractions for building distributed systems.

However, distributed Erlang comes with several caveats and warnings. We will demystify some of the warnings while reiterating others.

In this tutorial, participants will get hands on experience with distributed Erlang through building real solutions to real world problems.

You will learn how to harden their solutions against network and hardware failures using a test harness designed to inject failures into clusters. Whilst the goal is to provide an understanding of the primitives available in Erlang and Elixir for building distributed systems, we’ll also discuss some of the popular libraries available in the BEAM ecosystem.

 

OBJECTIVES

  • Provide insights into the tools available for building distributed systems
  • Learn patterns for building consistent and eventually consistent systems
  • Experience the different types of faults that you’ll see in the real world

 

PREREQUISITES

You should have a working understanding of Supervisors, GenServers, and other primitives in Elixir and Erlang.

 

TARGET AUDIENCE

Intermediate Erlang or Elixir developers who want to take advantage of the clustering abilities in OTP.

COURSE OUTLINE

The tutorial is broken into 4 distinct pieces of work. Each section builds on the previous and endeavours to provide real-world scenarios.

  • Connecting nodes, sending messages, and handling faults
  • Building low latency APIs with replication
  • Scaling replication with eventual consistency
  • Taking advantage of your computer by distributing work across the cluster