Affiliation:
1. Technische Universität Darmstadt, Darmstadt, Germany
Abstract
Reactive programming improves the design of reactive applications by relocating the logic for managing dependencies between dependent values away from the application logic to the language implementation. Many distributed applications are reactive. Yet, existing change propagation algorithms are not suitable in a distributed setting.
We propose Distributed REScala, a reactive language with a change propagation algorithm that works without centralized knowledge about the topology of the dependency structure among reactive values and avoids unnecessary propagation of changes, while retaining safety guarantees (
glitch freedom
). Distributed REScala enables distributed reactive programming, bringing the benefits of reactive programming to distributed applications. We demonstrate the enabled design improvements by a case study. We also empirically evaluate the performance of our algorithm in comparison to other algorithms in a simulated distributed setting.
Funder
European Research Council
Bundesministerium für Bildung und Forschung
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Cited by
5 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. 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
2. Realizing Persistent Signals in JavaScript;Proceedings of the 10th ACM SIGPLAN International Workshop on Reactive and Event-Based Languages and Systems;2023-10-19
3. Distributed Persistent Signals: Architecture and Implementation;Proceedings of the 9th ACM SIGPLAN International Workshop on Reactive and Event-Based Languages and Systems;2022-11-29
4. Mining the usage of reactive programming APIs;Proceedings of the 19th International Conference on Mining Software Repositories;2022-05-23
5. Quality-Aware Reactive Programming for the Internet of Things;Fundamentals of Software Engineering;2017