Abstract
Ubiquitous connectivity of web, mobile, and IoT computing platforms has fostered a variety of distributed applications with decentralized state. These applications execute across multiple devices with varying reliability and connectivity. Unfortunately, there is no declarative fault-tolerant programming model for distributed interactive applications with an inherently decentralized system model.
We present a novel approach to automating fault tolerance using high-level programming abstractions tailored to the needs of distributed interactive applications. Specifically, we propose a calculus that enables formal reasoning about applications' dataflow within and across individual devices. Our calculus reinterprets the functional reactive programming model to seamlessly integrate its automated state change propagation with automated crash recovery of device-local dataflow and disconnection-tolerant distribution with guaranteed automated eventual consistency semantics based on conflict-free replicated datatypes. As a result, programmers are relieved of handling intricate details of distributing change propagation and coping with distribution failures in the presence of interactivity. We also provides proofs of our claims, an implementation of our calculus, and an empirical evaluation using a common interactive application.
Funder
HMWK LOEWE
European Research Council
Deutsche Forschungsgemeinschaft
Publisher
Association for Computing Machinery (ACM)
Subject
Safety, Risk, Reliability and Quality,Software
Reference79 articles.
1. Akka. 2019a. Distributed Data Clusters. https://doc.akka.io/docs/akka/current/distributed- data.html . Akka. 2019a. Distributed Data Clusters. https://doc.akka.io/docs/akka/current/distributed- data.html .
2. Akka. 2019b. Documentation. http://akka.io/docs . Akka. 2019b. Documentation. http://akka.io/docs .
3. The Stratosphere platform for big data analytics
4. Delta state replicated data types
Cited by
13 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. LoRe: A Programming Model for Verifiably Safe Local-first Software;ACM Transactions on Programming Languages and Systems;2024-01-15
2. Bridging Between Active Objects: Multitier Programming for Distributed, Concurrent Systems;Lecture Notes in Computer Science;2024
3. High-performance Deterministic Concurrency Using
Lingua Franca;ACM Transactions on Architecture and Code Optimization;2023-10-26
4. Historiographer: Strongly-Consistent Distributed Reactive Programming with Minimal Locking;Companion Proceedings of the 2023 ACM SIGPLAN International Conference on Systems, Programming, Languages, and Applications: Software for Humanity;2023-10-22
5. Realizing Persistent Signals in JavaScript;Proceedings of the 10th ACM SIGPLAN International Workshop on Reactive and Event-Based Languages and Systems;2023-10-19