Abstract
We present a multiparty session type (MST) framework with
asynchronous mixed choice
(MC). We propose a core construct for MC that allows transient inconsistencies in protocol state between distributed participants, but ensures all participants can always eventually reach a mutually consistent state. We prove the correctness of our system by establishing a progress property and an operational correspondence between global types and distributed local type projections. Based on our theory, we implement a practical toolchain for specifying and validating asynchronous MST protocols featuring MC, and programming compliant gen_statem processes in Erlang/OTP. We test our framework by using our toolchain to specify and reimplement part of the amqp_client of the RabbitMQ broker for Erlang.
Topics

No keywords indexed for this article. Browse by subject →

References
49
[1]
Manuel Adameit, Kirstin Peters, and Uwe Nestmann. 2017. Session Types for Link Failures. In FORTE (Lecture Notes in Computer Science, Vol. 10321). Springer, 1–16.
[4]
Lorenzo Bettini, Mario Coppo, Loris D’Antoni, Marco De Luca, Mariangiola Dezani-Ciancaglini, and Nobuko Yoshida. 2008. Global Progress in Dynamically Interleaved Multiparty Sessions. In CONCUR (LNCS, Vol. 5201). 418–433. isbn:978-3-540-85360-2
[21]
Pierre-Malo Deniélou and Nobuko Yoshida. 2012. Multiparty Session Types Meet Communicating Automata. In ESOP (LNCS, Vol. 7211). 194–213.
[22]
Pierre-Malo Deniélou and Nobuko Yoshida. 2013. Multiparty Compatibility in Communicating Automata: Characterisation and Synthesis of Global Session Types. In ICALP (LNCS, Vol. 7966). 174–186.
[30]
Foundations of Session Types and Behavioural Contracts

Hans Hüttel, Ivan Lanese, Vasco T. Vasconcelos et al.

ACM Computing Surveys 10.1145/2873052
Metrics
0
Citations
49
References
Details
Published
Apr 10, 2026
Vol/Issue
10(OOPSLA1)
Pages
1542-1569
Funding
EPSRC Award: EP/T014512/1
Cite This Article
Laura Bocchi, RAYMOND HU, Adriana Laura Voinea, et al. (2026). Mixed Choice in Asynchronous Multiparty Session Types. Proceedings of the ACM on Programming Languages, 10(OOPSLA1), 1542-1569. https://doi.org/10.1145/3798256
Related

You May Also Like

code2vec: learning distributed representations of code

Uri Alon, Meital Zilberstein · 2019

880 citations

An abstract domain for certifying neural networks

Gagandeep Singh, Timon Gehr · 2019

426 citations

Grounded Copilot: How Programmers Interact with Code-Generating Models

Shraddha Barke, Michael B. James · 2023

275 citations

Getafix: learning to fix bugs automatically

Johannes Bader, Andrew Scott · 2019

177 citations

egg: Fast and extensible equality saturation

Max Willsey, Chandrakana Nandi · 2021

150 citations