Mixed Choice in Asynchronous Multiparty Session Types

📅 2026-02-27
📈 Citations: 0
Influential: 0
📄 PDF
🤖 AI Summary
This work proposes a multiparty session typing framework that supports asynchronous mixed choices to address the participant state inconsistency arising from such choices in asynchronous multiparty conversations. The framework tolerates transient state inconsistencies during protocol execution but rigorously ensures eventual convergence to a consistent global state through an extended mechanism for global types and their projection onto local types. Building on this theoretical foundation, we present the first end-to-end verification and Erlang/OTP code generation toolchain for asynchronous multiparty protocols featuring mixed choices. The practical viability and effectiveness of our approach are demonstrated through its successful application in refactoring the amqp_client module of RabbitMQ, confirming its applicability to real-world distributed systems.

Technology Category

Application Category

📝 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.
Problem

Research questions and friction points this paper is trying to address.

asynchronous multiparty session types
mixed choice
protocol state consistency
distributed systems
session types
Innovation

Methods, ideas, or system contributions that make the work stand out.

asynchronous mixed choice
multiparty session types
operational correspondence
progress property
Erlang/OTP