skip to main content
10.1145/3001929.3001930acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
research-article

I now pronounce you reactive and consistent: handling distributed and replicated state in reactive programming

Published:01 November 2016Publication History

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.

References

  1. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  2. A. P. Black and M. P. Immel. Encapsulating plurality. In European Conference on Object-Oriented Programming, pages 57– 79. Springer, 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  4. 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 ScholarGoogle Scholar
  5. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  6. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  7. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  8. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  9. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  10. L. Lamport et al. Paxos made simple. 2001.Google ScholarGoogle Scholar
  11. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  12. 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 ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. I now pronounce you reactive and consistent: handling distributed and replicated state in reactive programming

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader