Programming Idioms for Transactional Events
Matthew Kehrt (University of Washington), Laura Effinger-Dean, (University of Washington), Michael Schmitz (University of Washington), Dan, Grossman (University of Washington)

TL;DR
This paper explores programming idioms for transactional events (TE), addressing protocol issues, primitive translations, and protocol rewrites to improve TE's practical programming patterns compared to CML.
Contribution
It introduces solutions for client-server protocol issues, proposes workarounds for TE primitives, and discusses rewriting CML protocols with abort actions.
Findings
Resolved a subtle client-server protocol problem in TE
Identified limitations of CML's wrap and guard primitives in TE
Provided methods to rewrite CML protocols with abort actions
Abstract
Transactional events (TE) are an extension of Concurrent ML (CML), a programming model for synchronous message-passing. Prior work has focused on TE's formal semantics and its implementation. This paper considers programming idioms, particularly those that vary unexpectedly from the corresponding CML idioms. First, we solve a subtle problem with client-server protocols in TE. Second, we argue that CML's wrap and guard primitives do not translate well to TE, and we suggest useful workarounds. Finally, we discuss how to rewrite CML protocols that use abort actions.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsService-Oriented Architecture and Web Services · Distributed systems and fault tolerance · Mobile Agent-Based Network Management
