The nature of distributed systems and their fault model is chaotic: replicas can fail temporarily or just stop working, and the complexity of adding defensive code against all possible scenarios is unrealistic if complex applications are to be designed. Despite several techniques that try to mitigate this issue (e.g. RPC), a more opaque abstraction layer is needed in order to avoid long implementation times as well as incorrect behaviour driven from faulty or careless code. I believe that providing a programming-language-level abstraction layer is an effective approach to significantly reduce the amount of time focused on how systems can fail, rather than how they should work. Such an approach should mainly consist in supplying systems programmers with basic functionalities in the following areas: node distribution, data replication and partition tolerance. Being in an early adoption stage, Lasp needs applications that can serve as proof of concept in order to increase awareness of its capabilities as well as user adoption. This proposal is about the implementation of a real world application based on previous work published recently at PaPoC'17 - an EuroSys workshop.





  • Christopher Meiklejohn
  • Vitor Enes