Recording not yet published

Talk 45:00

Modeling and verifying distributed applications with Concuerror

Sometimes, a developer needs to build some algorithm using Erlang's primitives directly. Such code is usually hard to get right, as one needs to think from scratch about all the possible race conditions, timeouts, deadlocks etc. Recently, developers at Klarna decided to re-design such a custom algorithm, used in a critical component of their software stack. How could they be certain that their code would not suffer from such concurrency errors?

Concuerror is a tool built to answer exactly such questions, but Klarna's algorithm was intimately tied to distributed Erlang's behaviors, which Concuerror does not support. The solution was to design a modelling library, vnet, which can help to simulate distributed Erlang systems on a single node.

In this talk, Stavros will present vnet's capabilities, show how it can be used to model, test and verify distributed Erlang systems, and demonstrate the kinds of errors that Concuerror can find (or prove that don't exist!).

OBJECTIVES

Demonstrate new capabilities for testing and verifying distributed Erlang systems Report on what's going on with Concuerror, an advanced tool for testing Erlang programs

TARGET AUDIENCE

Distributed system architects People who like to play with tools Erlang distribution experts