Ben Marx

Distributed Applications Tech Lead @ Subspace

After years of object oriented development in PHP and Ruby, finally enjoying the benefits of programming in Elixir.

Upcoming Activities

Ben Marx / Lang Martin
Code BEAM Europe 2022
Tutorial/ 17 May 2022
16.00 - 23.30

Putting the puzzle pieces together: Reliably ordering events in a distributed system




Consensus is a trade-off in distributed systems, and one that's underutilized. Single leader systems are the default and we often fail to take advantage of the scale that can be achieved by relaxing the constraint of a single source of truth. We'll discuss some of the varying levels of consistency that can be selected by relaxing constraints, and their progressive advantages for scaling solutions the detrimental effects this has on a global understanding of order. In the afternoon, we'll discuss CRDTs and the contribution they can make by leaving applications in a predictable, coherent state even with eventual consistency and how CRDTs can be leveraged to create practical systems with low consistency and high availability.


7 Hours


Attendees should come away with an understanding of consistency models affect what we can say about the order of events in a distributed systems


Experienced Elixir developers who have some distributed systems background

Past Activities

Ben Marx
Code BEAM SF 2018
Tutorial/ 17 Mar 2018
20.19 - 17.00


Starting from first principles we will investigate how to design reliable OTP applications. We will cover links and monitors, and how and why they are used by OTP to handle process dependencies. Then we will cover Supervisors and go through the guarantees provided by each strategy. Finally we will put this together to build supervision trees that isolate errors and recover systems to a good state with minimal side effects. This session will involve adding fault tolerance to existing applications and implementing our own versions of a few OTP features, including writing a basic supervisor.

Students are expected to be familiar with the Elixir language and understand the basics of Tasks, Agents and GenServers. Some knowledge of Supervisors is welcome but not essential. A laptop with Elixir 1.6 (or newer) and Erlang/OTP 19 (or newer) is required.

Ben Marx
Code BEAM SF 2018
16 Mar 2018
15.20 - 15.45

Trusted autonomy

Smaller teams are easier to manage just as simpler systems are easier to manage. As your team grows, your system inevitably becomes more complex. Without a clear vision, software quality can decline and, likewise, developers happiness can wane. At Bleacher Report, as we've grown our team, we've put in place standards and systems that help maintain software quality, keep developers engaged and independent and evaluate and incorporate new technology. Learn how we've managed to do that in this 20 minute talk.


Articles: 1

Trusted Autonomy - SLIDES - Code BEAM SF 2018

Article by Ben Marx

Slides from Ben Marx' talk "Trusted Autonomy" - Code BEAM SF 2018


Videos: 1