A Language for Distributed, Eventually Consistent Computations
Lasp is a new programming model designed to simplify large scale, fault-tolerant, distributed programming. It leverages ideas from distributed dataflow extended with convergent replicated data types, or 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.
Listen to Christopher Meiklejohn discuss the inspiration and design for the Lasp programming model.
Follow these two easy steps to get a Lasp instance running with Docker! (For this image to run correctly, the docker-machine needs to be configured with more than one processor.)
Lasp's prototype implementation is provided as an Erlang library. Erlang is an excellent language for distribution and concurrency, and allows us to prototype new features for Lasp quickly. Below is a code sample for creating a distributed set and applying a map function to the set.
There have been several talks about Lasp, but for a good overview of how the language and runtime work:
Conference and workshop papers relating to Lasp and its predecesors, have been presented at:
A blog series on Lasp is available:InfoQ.