Choreographies meet Communication Failures

by   Fabrizio Montesi, et al.

Choreographies are global descriptions of communication structures, inspired by the "Alice and Bob" notation of security protocols. They have been successfully employed in the design and implementation of distributed systems. However, there is still limited evidence of the applicability of choreographies in the real-world setting of distributed programming, where communication actions may fail. In this work, we propose the first choreography model that allows for communication failures and the programming of user-defined code to deal with such failures. We validate our model by implementing common strategies for handling communication failures in a robust way, which in turn can be used as a library by choreographies that assume reliable communication. We equip our model with a typing discipline that can statically verify reliability properties, in particular at-most-once and exactly-once delivery. We demonstrate the applicability of our model by defining a semantics-preserving compilation procedure towards a process calculus equipped with unreliable I/O actions.


page 1

page 2

page 3

page 4


Meta-Modeling of Assembly Contingencies and Planning for Repair

The World Robotics Challenge (2018 2020) was designed to challenge t...

Generalised Multiparty Session Types with Crash-Stop Failures (Technical Report)

Session types enable the specification and verification of communicating...

On implementing SWMR registers from SWSR registers in systems with Byzantine failures

The implementation of registers from (potentially) weaker registers is a...

Connectors meet Choreographies

We present Cho-Reo-graphies (CR), a new language model that unites two p...

Are Multiagent Systems Resilient to Communication Failures?

A challenge in multiagent control systems is to ensure that they are app...

Fairness and Observed Communication Semantics for Session-Typed Languages

Observed communication semantics provide an intuitive notion of equivale...

Trace and Stable Failures Semantics for CSP-Agda

CSP-Agda is a library, which formalises the process algebra CSP in the i...