Tutorial: 10:05-11:35 (English)
Building highly available systems with Elixir: an introduction
We have all seen computer systems failing, sometimes in a mundane way, sometimes in a catastrophic way. How can we reduce the probability of such failures to happen? What makes a system fault tolerant?
In this tutorial, we will explore how Elixir answers these questions and what makes it particularly well-suited to build highly available systems. We will provide a quick introduction to the language and its runtime, the Erlang VM. We will focus on Elixir’s strengths but also discuss its weaknesses.
Participants will then be invited to work on a series of tapas. Tapas are small projects with a challenge to be solved meant to introduce and illustrate some fundamental aspects of Elixir and its runtime. A few written questions complement each tapa, inviting the participants to think about the broader context of what they just learned. Participants will be encouraged to think primarily in terms of processes instead of objects, functions or modules.
At the end of the tutorial, participants will have a better overview of the main concepts used when building distributed systems with Elixir: processes, supervision of processes, nodes, message passing, generic servers, etc. They should be able to better evaluate the relevance of Elixir for their future projects and to adapt some of the ideas of the Elixir/Erlang ecosystem to improve the systems they are currently developing.
Prerequisites: some experience with functional programming and Linux/Unix.
Course materials will appear here: https://github.com/pallix/bobkonf2023-elixir-workshop
Please clone the repo and follow the provided instructions
Pierre Allix works as a software engineer in the renewable energy sector.
He has developed software professionally since 15 years, in the private sector and public sector, including Fraunhofer and Sonnen. With a focus on functional programming and backends, he used Clojure for 5 years and is now using Elixir since 5 years for the development of one of the largest virtual power plants in Europe.
Developer with interests in TDD, functional programming and data-intensive applications. 5+ years of experience developing software with Scala and facilitating developer workshops.