Distributed Protocol Combinators

Research output: Contribution to book/anthology/report/proceedingArticle in proceedingsResearchpeer-review

  • Kristoffer Just Arndal Andersen
  • ,
  • Ilya Sergey, Yale-NUS College
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 the ideas from the 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 a number of distributed protocols from the literature.
Original languageEnglish
Title of host publicationPractical Aspects of Declarative Languages : 21th International Symposium, PADL 2019, Lisbon, Portugal, January 14-15, 2019, Proceedings
EditorsJose Julio Alferes, Moa Johansson
Number of pages186
Place of publicationLisbon, Portugal
PublisherSpringer VS
Publication year14 Jan 2019
ISBN (Electronic)978-3-030-05998-9
Publication statusPublished - 14 Jan 2019
Event21st International Symposium on Practical Aspects of Declarative Languages - Cascais, Portugal
Duration: 14 Jan 201915 Jan 2019
Conference number: 21


Conference21st International Symposium on Practical Aspects of Declarative Languages
SeriesProgramming and Software Engineering

See relations at Aarhus University Citationformats


ID: 142148070