Accompanist: A Runtime for Resilient Choreographic Programming
Viktor Strate Kl{\o}vedal, Dan Plyukhin, Marco Peressotti, Fabrizio Montesi

TL;DR
Accompanist introduces a resilient runtime for choreographic programming that enables reliable, decentralized saga transactions without requiring strong network assumptions or modifications to existing compilers.
Contribution
It presents Accompanist, a runtime that replays computations to mask faults, allowing simple, resilient choreographic programs to be deployed in service-oriented architectures.
Findings
Formal model and correctness proof for Accompanist
Supports decentralized saga transactions in existing systems
Enables fault masking without complex language features
Abstract
In service-oriented architecture, services coordinate in one of two ways: directly, using point-to-point communication, or indirectly, through an intermediary called the orchestrator. Orchestrators tend to be more popular because their local state is a 'single source of truth' for the status of ongoing workflows, which simplifies fault recovery and rollback for distributed transactions that use the 'saga' pattern. But orchestration is not always an option because of hardware constraints and security policies. Without a central orchestrator, resilient saga transactions are hard to implement correctly. A natural idea is to use choreographic programming, a paradigm that brings the 'global view' of orchestrators to a decentralised setting. Unfortunately, choreographic programming relies on strong assumptions about network reliability and service uptime that often do not hold. Recent work…
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
TopicsDistributed systems and fault tolerance · Software System Performance and Reliability · Logic, programming, and type systems
