Seminar 2015-03-05

We propose Lasp, a new programming language designed to simplify large-scale fault-tolerant distributed programming. Lasp is being developed in the SyncFree European project (syncfree.lip6.fr). It leverages ideas from distributed dataflow extended with convergent replicated data types (CRDTs). This supports computations where not all participants are online together at a given moment. The initial design supports synchronization-free programming by combining CRDTs together with primitives for composing them inspired by functional programming. This lets us write long-lived fault-tolerant distributed applications, including ones with nonmonotonic behavior, in a functional paradigm. The initial prototype is implemented as an Erlang library built on top of the riak-core distributed systems infrastructure, which is based on a ring with consistent hashing. We show how to implement one nontrivial large-scale application, the ad counter scenario from SyncFree. Future extensions of Lasp will focus on efficiency, practicality, and extensions to add synchronization where needed such as explicit causality and mergeable transactions.