ABSTRACT
Developing modern collaborative applications burdens the programmer with local event handling (e.g. user interaction), remote event handling (e.g. updates from the server) and shared state (e.g. in order to allow operations while being disconnected). Several solutions have been developed at the programming language level in order to reduce the complexity of these aspects. On one hand, distributed reactive models (e.g. DREAM) tackle both local and remote event handling. On the other hand recent replicated consistency models (e.g. CRDT's and CloudTypes) hide the complexity of shared, replicated state. Both solutions only partially alleviate the complexity associated with developing collaborative applications. To the best of our knowledge, none or very little effort has been undertaken to provide a single unified model able to tackle both event handling and shared state. In this paper we argue the need for such a united model. To that end we present Direst, a domain specific language which enhances traditional reactive abstractions (i.e. signals) with replication and consistency features. Direst reduces the complexities of writing truly collaborative applications by providing a framework in which elegantly handling events and easily managing shared state are not mutually exclusive.
- E. Bainomugisha, A. L. Carreton, T. v. Cutsem, S. Mostinckx, and W. d. Meuter. A survey on reactive programming. ACM Comput. Surv., 45(4):52:1–52:34, Aug. 2013. ISSN 0360-0300. Google ScholarDigital Library
- A. P. Black and M. P. Immel. Encapsulating plurality. In European Conference on Object-Oriented Programming, pages 57– 79. Springer, 1993. Google ScholarDigital Library
- S. Burckhardt, M. Fähndrich, D. Leijen, and B. P. Wood. Cloud types for eventual consistency. In European Conference on Object-Oriented Programming, pages 283–307. Springer, 2012. Google ScholarDigital Library
- S. Burckhardt, D. Leijen, J. Protzenko, and M. Fähndrich. Global sequence protocol: A robust abstraction for replicated shared state. In LIPIcs-Leibniz International Proceedings in Informatics, volume 37. Schloss Dagstuhl-Leibniz-Zentrum fuer Informatik, 2015.Google Scholar
- A. L. Carreton, S. Mostinckx, T. Van Cutsem, and W. De Meuter. Loosely-coupled distributed reactive programming in mobile ad hoc networks. In International Conference on Modelling Techniques and Tools for Computer Performance Evaluation, pages 41–60. Springer, 2010. Google ScholarDigital Library
- T. Coppieters, L. Philips, W. De Meuter, and T. Van Cutsem. An open implementation of cloud types for the web. In Proceedings of the First Workshop on Principles and Practice of Eventual Consistency, page 2. ACM, 2014. Google ScholarDigital Library
- T. Coppieters, W. De Meuter, and S. Burckhardt. Serializable eventual consistency: consistency through object method replay. In Proceedings of the 2nd Workshop on the Principles and Practice of Consistency for Distributed Data, page 3. ACM, 2016. Google ScholarDigital Library
- T. V. Cutsem, E. G. Boix, C. Scholliers, A. L. Carreton, D. Harnie, K. Pinte, and W. D. Meuter. Ambienttalk: programming responsive mobile peer-to-peer applications with actors. Computer Languages, Systems & Structures, 40(34):112 – 136, 2014. ISSN 1477-8424. Google ScholarDigital Library
- E. Czaplicki and S. Chong. Asynchronous functional reactive programming for guis. In Proceedings of the 34th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI ’13, pages 411–422, New York, NY, USA, 2013. Google ScholarDigital Library
- L. Lamport et al. Paxos made simple. 2001.Google Scholar
- D. Ongaro and J. Ousterhout. In search of an understandable consensus algorithm. In 2014 USENIX Annual Technical Conference (USENIX ATC 14), pages 305–319, 2014. Google ScholarDigital Library
- B. Reynders, D. Devriese, and F. Piessens. Multi-tier functional reactive programming for the web. In Proceedings of the 2014 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming & Software, Onward! 2014, pages 55–68, New York, NY, USA, 2014. ACM. ISBN 978-1- 4503-3210-1. Y. Saito and M. Shapiro. Optimistic replication. ACM Comput. Surv., 37(1):42–81, Mar. 2005. ISSN 0360-0300. Google ScholarDigital Library
Index Terms
- I now pronounce you reactive and consistent: handling distributed and replicated state in reactive programming
Recommendations
Handling partial failures in distributed reactive programming
REBLS 2017: Proceedings of the 4th ACM SIGPLAN International Workshop on Reactive and Event-Based Languages and SystemsDistributed reactive programming enables programmers to reuse the abstractions provided by reactive programming to elegantly implement distributed systems. However, distributed reactive approaches have thus far neglected to address an inherent property ...
A CAPable distributed programming model
Onward! 2018: Proceedings of the 2018 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and SoftwareDevelopers of modern distributed systems continuously face the impossibility result proved by the CAP theorem. In a nutshell, the theorem states that a partition-tolerant system can either guarantee consistency or availability. Most distributed ...
Reactive programming experience with REScala
Programming '18: Companion Proceedings of the 2nd International Conference on the Art, Science, and Engineering of ProgrammingReactive programming is a recent programming paradigm that specifically targets reactive applications. Over the years, a number of reactive languages have been proposed, with different combinations of features, and various target domains.
...
Comments