Distributed Protocol Combinators
Distributed systems are hard to get right, model, test, debug, and teach. Their textbook definitions, typically given in a form of replicated state machines, are concise, yet prone to introducing programming errors if naïvely translated into runnable implementations.
In this work, we present Distributed Protocol Combinators (DPC), a declarative programming framework that aims to bridge the gap between specifications and runnable implementations of distributed systems, and facilitate their modeling, testing, and execution. DPC builds on ideas from state-of-the art logics for compositional systems verification. The contribution of DPC is a novel family of program-level primitives, which facilitates construction of larger distributed systems from smaller components, streamlining the usage of the most common asynchronous message-passing communication patterns, and providing machinery for testing and user-friendly dynamic verification of systems.
This paper describes the main ideas behind the design of the framework and presents its implementation in Haskell. We introduce DPC through a series of characteristic examples and showcase it on on a number of distributed protocols from the literature.
Mon 14 JanDisplayed time zone: Belfast change
16:00 - 17:30 | |||
16:00 30mTalk | Faster Coroutine Pipelines: A Reconstruction PADL | ||
16:30 30mTalk | Distributed Protocol Combinators PADL Kristoffer Just Arndal Andersen Aarhus University, Ilya Sergey Yale-NUS College and National University of Singapore Pre-print | ||
17:00 30mTalk | Classes of Arbitrary Kind PADL Alejandro Serrano Utrecht University, Netherlands, Victor Cacciari Miraldo Utrecht University, Netherlands Link to publication DOI File Attached |