Chorex: Restartable, Language-Integrated Choreographies
We built Chorex, a language that brings choreographic programming to Elixir as a path toward robust distributed applications. Chorex is unique among choreographic languages because it tolerates failure among actors: when an actor crashes, Chorex spawns a new process, restores state using a checkpoint, and updates the network configuration for all actors. Chorex also proves that full-featured choreographies can be implemented via metaprogramming, and that doing so achieves tight integration with the host language. For example, mismatches between choreography requirements and an actor implementation are reported statically and in terms of source code rather than macro-expanded code. This paper illustrates Chorex on several examples, ranging from a higher-order bookseller to a secure remote password protocol, details its implementation, and measures the overhead of checkpointing. We conjecture that Chorex’s projection strategy, which outputs sets of stateless functions, is a viable approach for other languages to support restartable actors.
Wed 18 MarDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
10:30 - 12:00 | Programming system implementationResearch Papers at Lecture Hall Chair(s): Tom Beckmann Hasso Plattner Institute | ||
10:30 45mTalk | Chorex: Restartable, Language-Integrated Choreographies Research Papers DOI | ||
11:15 45mTalk | JoinActors: A Modular Library for Actors with Join Patterns Research Papers Ayman Hussein Technical University of Denmark, Philipp Haller KTH Royal Institute of Technology, Ioannis Karras DTU Compute - Technical University of Denmark, Hernan Melgratti University of Buenos Aires, Argentina, Alceste Scalas Technical University of Denmark, Emilio Tuosto Gran Sasso Science Institute, L'Aquila, Italy DOI | ||