Towards language support for distributed systems

Building and managing different sorts of distributed systems is notoriously difficult; of course nodes can fail, but we are also often connecting many different services with many different underlying assumptions behind each. This means that not only can individual components fail, but so can entire inter-connected groups of services. But what if we could leave some of these headaches, like making sure certain invariants hold between two inter-connected services, to our programming language to worry about?

In this talk, Heather will talk about some recent work bridging distributed systems and programming languages research by shifting reasoning for two classes of problems into the programming language; building up richer computations making use of CRDTs, and building up richer computations implemented as compositions of serverless functions.