An Erlang Implementation of Multiparty Session Actors

Simon Fowler
(The University of Edinburgh, Edinburgh, UK)

By requiring co-ordination to take place using explicit message passing instead of relying on shared memory, actor-based programming languages have been shown to be effective tools for building reliable and fault-tolerant distributed systems. Although naturally communication-centric, communication patterns in actor-based applications remain informally specified, meaning that errors in communication are detected late, if at all.

Multiparty session types are a formalism to describe, at a global level, the interactions between multiple communicating entities. This article describes the implementation of a prototype framework for monitoring Erlang/OTP gen_server applications against multiparty session types, showing how previous work on multiparty session actors can be adapted to a purely actor-based language, and how monitor violations and termination of session participants can be reported in line with the Erlang mantra of "let it fail". Finally, the framework is used to implement two case studies: an adaptation of a freely-available DNS server, and a chat server.

In Massimo Bartoletti, Ludovic Henrio, Sophia Knight and Hugo Torres Vieira: Proceedings 9th Interaction and Concurrency Experience (ICE 2016), Heraklion, Greece, 8-9 June 2016, Electronic Proceedings in Theoretical Computer Science 223, pp. 36–50.
Published: 10th August 2016.

ArXived at: https://dx.doi.org/10.4204/EPTCS.223.3 bibtex PDF
References in reconstructed bibtex, XML and HTML format (approximated).
Comments and questions to: eptcs@eptcs.org
For website issues: webmaster@eptcs.org