🤖 AI Summary
To address communication-intensive session programming, this paper proposes a novel session type system supporting explicit commit, rollback, and abort operations. To prevent illegal cross-participant state restoration, it introduces—within the session types framework—the first statically decidable rollback compliance check, ensuring rollbacks affect only locally accessed states and never violate inter-participant boundaries. Building on session type theory, the authors extend the session language and integrate MAUDE for design-time, type-level verification. They formally prove that the system satisfies error-freedom and progress properties. The core contributions are: (i) a safe and controllable rollback semantics grounded in session types; (ii) static enforcement of cross-participant isolation during rollback; and (iii) verifiable session recovery behavior, enabling rigorous reasoning about fault-tolerant distributed protocols.
📝 Abstract
To react to unforeseen circumstances or amend abnormal situations in communication-centric systems, programmers are in charge of"undoing"the interactions which led to an undesired state. To assist this task, session-based languages can be endowed with reversibility mechanisms. In this paper we propose a language enriched with programming facilities to commit session interactions, to roll back the computation to a previous commit point, and to abort the session. Rollbacks in our language always bring the system to previous visited states and a rollback cannot bring the system back to a point prior to the last commit. Programmers are relieved from the burden of ensuring that a rollback never restores a checkpoint imposed by a session participant different from the rollback requester. Such undesired situations are prevented at design-time (statically) by relying on a decidable compliance check at the type level, implemented in MAUDE. We show that the language satisfies error-freedom and progress of a session.