Branching Out: Existential External Choice in Effpi

📅 2026-04-08
📈 Citations: 0
Influential: 0
📄 PDF
🤖 AI Summary
This work enhances the expressiveness of protocol modeling in message-passing programs by extending the strongly-typed framework Effpi with novel support for multi-channel external choice branches and timeout handling mechanisms. Building upon behavioral types and a variant of CCS encoding, the approach integrates a compiler plugin to enforce type-safe verification. The proposed extension substantially enriches the expressivity of protocol types, enabling the type-safe modeling and verification of complex interaction protocols such as the Raft consensus algorithm. This demonstrates the practical applicability and effectiveness of the framework in real-world distributed systems.
📝 Abstract
Effpi is a framework for writing strongly-typed message-passing programs in Scala, where the compiler enforces the conformance of process implementations to specified protocol types. A compiler plugin is provided to verify properties of protocols, such as deadlock-freedom and liveness, by encoding the behavioural types into a variant of CCS. To address limitations in the expressiveness of the existing toolkit, we extend Effpi with external choice by introducing a branching operation. Upon accepting a message via a branch, protocols enforce a continuation which depends on the label (type) of the received message. We equip the branching operation with the ability to accept messages over more than one channel. Additionally, we introduce a "catch timeout" operation to allow processes to gracefully handle a lack of incoming messages. The enhanced expressiveness of Effpi is demonstrated through a number of examples, including an implementation of the Raft consensus algorithm.
Problem

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

external choice
message-passing
protocol types
branching
expressiveness
Innovation

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

external choice
branching operation
multi-channel reception
timeout handling
protocol types
🔎 Similar Papers
No similar papers found.