Write a Blog >>
SPLASH 2019
Sun 20 - Fri 25 October 2019 Athens, Greece

Ubiquitous connectivity of web, mobile, and IoT computing platforms has fostered a variety of distributed applications with decentralized state. These applications execute on multiple devices with varying reliability and connectivity. Developing such applications requires a programming model supporting reasoning about interactive usage, consistency, and fault tolerance. Unfortunately, current approaches either do not cover fault tolerance for the high-level behavior of applications.

This paper presents a novel approach to providing consistency with fully automatic tolerance for device crashes and communication failures, tailored to the needs of interactive distributed applications with decentralized state. We propose $\mathcal{F}{R}$, a formal calculus with programming abstractions that alleviate programmers of handling intricate details of failures. $\mathcal{F}{R}$ provides durability and strong consistency for devices’ local state throughout failures, and takes a clear stance towards favoring availability when handling communication failures, providing eventual consistency for distributed state.