Lasp: Elements of a programming language for edge computing
Speaker(s) : Peter van Roy (Université catholique de Louvain)
The Internet is turning inside out: the edge (e.g., mobile networks and Internet of Things) is growing exponentially and the center (data centers) is stable. In a few years, most of the Internet will be at the edge. This poses the question: how do we develop applications to run on edge networks? These networks are highly dynamic with unreliable nodes and intermittent connectivity. In our approach, we consider that these properties are inherent and that edge networks will always be unreliable. Our approach combines convergent computation with hybrid gossip. Convergent computation implements consistent replicated data on unreliable distributed systems. It starts with convergent data structures (CRDTs: Conflict-Free Replicated Data Types) and builds applications by composing them. Hybrid gossip algorithms, such as Plumtree and HyParView, provide a communication layer that maintains connectivity even when 70% or more of nodes fail. The result is the Lasp language and system. Lasp looks to the programmer like a combination of streaming dataflow and functional programming. In this talk, we explain the problems of edge computing and we present Lasp as a first step towards solving them. We give the semantics of Lasp in Sebastien Burckhardt's abstraction execution formalism. Lasp is so far implemented as a library in Erlang, but eventually it will become a standalone language. We show that the functional approach is well-adapted to edge networks. We have only scratched the surface of this programming style, and we give an overview of the challenges that remain.
Emmanuel.Chailloux (at) nulllip6.fr