elixir logoElixirZA

A community of Erlang & Elixir enthusiasts from South Africa 🇿🇦 and the broader African continent 🌍.

What is Elixir?

Elixir is a programming language that runs on the Erlang runtime (also known as BEAM / OTP). It is not the oldest BEAM language (that would be Erlang), neither is it the youngest (there are several), but it is the most fun to work with.

Elixir is used in production in large software systems, e.g. Discord. And the underlying Erlang runtime powers WhatsApp, and a great deal of the infrastructure (switches) that make up the modern telco networks that we all rely on.

Why Elixir?

What makes Elixir useful is the underlying Erlang runtime's "let it crash" philosophy, shared by all BEAM languages, where

The "let it crash" approach gives us a way to build systems that are fault tolerant, without the need to resort to defensive coding. If a process fails, it fails, but it doesn't bring down the whole system.

Better still... by isolating sequential programs into independent processes, the Erlang runtime makes it trivial to run code concurrently. So the code that was written to run on your own machine can also run efficiently on a different machine with many more cores, without requiring any changes to your code.

The same mechanisms for distributing work among CPU / GPU cores also helps make it relatively simple to scale Elixir applications among different machines, which may be running in very different geographic locations.

In this way, Elixir gives us a way to gradually turn simple programs, running locally, into large, distributed systems, without forcing us to change our mental models as we scale to bigger workloads.

Want to know more? Have a look below at some of our favourite talks / resources to get some more context around Elixir & Erlang, and to wrap your head around the underlying "let it crash" philosophy.

Get started with Elixir

How to get involved

Upcoming events

Past events

Learning Resources: Our all-time-favourites

Some of the resources we've found to be most helpful for wrapping your head around Erlang / Elixir / The BEAM.

Part 1: The Essentials

Why are we even here?

Part 2: Deeper cuts

Take your time to geek out on some of the finer implications of message-passing concurrency.

“Make it work, then make it beautiful, then if you really, really have to, make it fast. 90 percent of the time, if you make it beautiful, it will already be fast. So really, just make it beautiful!”
- Joe Armstrong