Nothing Special   »   [go: up one dir, main page]

skip to main content
research-article
Open access

A fault-tolerant programming model for distributed interactive applications

Published: 10 October 2019 Publication History

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.

Supplementary Material

a144-mogk (a144-mogk.webm)
Presentation at OOPSLA '19

References

[1]
Gul Agha. 1986. Actors: A Model of Concurrent Computation in Distributed Systems. MIT Press, Cambridge, MA, USA.
[2]
Akka. 2019a. Distributed Data Clusters. https://doc.akka.io/docs/akka/current/distributed- data.html .
[3]
Akka. 2019b. Documentation. http://akka.io/docs .
[4]
Alexander Alexandrov, Rico Bergmann, Stephan Ewen, Johann-Christoph Freytag, Fabian Hueske, Arvid Heise, Odej Kao, Marcus Leich, Ulf Leser, Volker Markl, Felix Naumann, Mathias Peters, Astrid Rheinländer, Matthias J. Sax, Sebastian Schelter, Mareike Höger, Kostas Tzoumas, and Daniel Warneke. 2014. The Stratosphere platform for big data analytics. The VLDB Journal 23, 6 (01 Dec 2014), 939–964.
[5]
Paulo Sérgio Almeida, Ali Shoker, and Carlos Baquero. 2018. Delta state replicated data types. J. Parallel and Distrib. Comput. 111 (2018), 162 – 173.
[6]
Joe Armstrong. 2010. Erlang. Commun. ACM (Sept. 2010).
[7]
Robert Atkey. 2017. Observed Communication Semantics for Classical Processes. In Programming Languages and Systems, Hongseok Yang (Ed.). Springer, Berlin, Heidelberg, 56–82.
[8]
Hagit Attiya, Alexey Gotsman, Sandeep Hans, and Noam Rinetzky. 2013. A Programming Language Perspective on Transactional Memory Consistency. In Proceedings of the 2013 ACM Symposium on Principles of Distributed Computing (PODC ’13). ACM, New York, NY, USA, 309–318.
[9]
P. Bernstein, Sergey Bykov, Alan Geller, Gabriel Kliot, and Jorgen Thelin. 2014. Orleans: Distributed Virtual Actors for Programmability and Scalability. Technical Report. (MSR-TR-2014-41, 24). http://aka.ms/Ykyqft
[10]
Philip A. Bernstein, Sebastian Burckhardt, Sergey Bykov, Natacha Crooks, Jose M. Faleiro, Gabriel Kliot, Alok Kumbhare, Muntasir Raihan Rahman, Vivek Shah, Adriana Szekeres, and Jorgen Thelin. 2017. Geo-distribution of Actor-based Services. Proc. ACM Program. Lang. 1, OOPSLA, Article 107 (Oct. 2017), 26 pages.
[11]
Gérard Berry and Georges Gonthier. 1992. The Esterel Synchronous Programming Language: Design, Semantics, Implementation. Sci. Comput. Program. 19, 2 (Nov. 1992).
[12]
Oliver Bračevac, Sebastian Erdweg, Guido Salvaneschi, and Mira Mezini. 2016. CPL: A Core Language for Cloud Computing. In Proceedings of the 15th International Conference on Modularity (MODULARITY 2016). ACM, New York, NY, USA, 94–105.
[13]
Sebastian Burckhardt and Tim Coppieters. 2018. Reactive Caching for Composed Services: Polling at the Speed of Push. Proc. ACM Program. Lang. 2, OOPSLA, Article 152 (Oct. 2018), 28 pages.
[14]
Sebastian Burckhardt, Manuel Fähndrich, Daan Leijen, and Benjamin P. Wood. 2012. Cloud Types for Eventual Consistency. In ECOOP 2012 – Object-Oriented Programming, James Noble (Ed.). Springer, Berlin, Heidelberg, 283–307.
[15]
Sebastian Burckhardt, Daan Leijen, Jonathan Protzenko, and Manuel Fähndrich. 2015. Global Sequence Protocol: A Robust Abstraction for Replicated Shared State. In 29th European Conference on Object-Oriented Programming (ECOOP 2015) (Leibniz International Proceedings in Informatics (LIPIcs)), John Tang Boyland (Ed.), Vol. 37. Schloss Dagstuhl–LeibnizZentrum fuer Informatik, Dagstuhl, Germany, 568–590.
[16]
Luís Caires and Jorge A. Pérez. 2017. Linearity, Control Effects, and Behavioral Types. In Programming Languages and Systems, Hongseok Yang (Ed.). Springer, Berlin, Heidelberg, 229–259.
[17]
Paris Carbone, Gyula Fóra, Stephan Ewen, Seif Haridi, and Kostas Tzoumas. 2015. Lightweight Asynchronous Snapshots for Distributed Dataflows. CoRR abs/1506.08603 (2015). arXiv: 1506.08603 http://arxiv.org/abs/1506.08603
[18]
Luca Cardelli and Andrew D. Gordon. 1999. Types for Mobile Ambients. In Proceedings of the 26th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL ’99). ACM, New York, NY, USA, 79–92.
[19]
Craig Chambers, Ashish Raniwala, Frances Perry, Stephen Adams, Robert R. Henry, Robert Bradshaw, and Nathan Weizenbaum. 2010. FlumeJava: Easy, Efficient Data-parallel Pipelines. In Proceedings of the 31st ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI ’10). ACM, New York, NY, USA, 363–375.
[20]
Neil Conway, William R. Marczak, Peter Alvaro, Joseph M. Hellerstein, and David Maier. 2012. Logic and Lattices for Distributed Programming. In Proceedings of the Third ACM Symposium on Cloud Computing (SoCC ’12). ACM, New York, NY, USA, Article 1, 14 pages.
[21]
Gregory H. Cooper and Shriram Krishnamurthi. 2006. Embedding Dynamic Dataflow in a Call-by-value Language. In Proceedings of the 15th European Conference on Programming Languages and Systems (ESOP’06). Springer-Verlag, Berlin, Heidelberg, 294–308.
[22]
Evan Czaplicki and Stephen Chong. 2013. Asynchronous Functional Reactive Programming for GUIs. In Proceedings of the 34th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI’13). ACM, New York, NY, USA, 411–422.
[23]
Ugo Dal Lago, Marc de Visme, Damiano Mazza, and Akira Yoshimizu. 2019. Intersection Types and Runtime Errors in the Pi-calculus. Proc. ACM Program. Lang. 3, POPL, Article 7 (Jan. 2019), 29 pages.
[24]
Jeffrey Dean and Sanjay Ghemawat. 2008. MapReduce: Simplified Data Processing on Large Clusters. Commun. ACM 51, 1 (Jan. 2008), 107–113.
[25]
Joscha Drechsler, Ragnar Mogk, Guido Salvaneschi, and Mira Mezini. 2018. Thread-safe Reactive Programming. Proc. ACM Program. Lang. 2, OOPSLA, Article 107 (Oct. 2018), 30 pages.
[26]
Joscha Drechsler, Guido Salvaneschi, Ragnar Mogk, and Mira Mezini. 2014. Distributed REScala: An Update Algorithm for Distributed Reactive Programming. In Proceedings of the 2014 ACM International Conference on Object Oriented Programming Systems Languages & Applications (OOPSLA ’14). ACM, New York, NY, USA, 361–376.
[27]
Jan Dzik, Nick Palladinos, Konstantinos Rontogiannis, Eirik Tsarpalis, and Nikolaos Vathis. 2013. MBrace: Cloud Computing with Monads. Proceedings of the Seventh Workshop on Programming Languages and Operating Systems (2013).
[28]
Conal Elliott and Paul Hudak. 1997. Functional Reactive Animation. In Proceedings of the Second ACM SIGPLAN International Conference on Functional Programming (ICFP ’97). ACM, New York, NY, USA, 263–273.
[29]
V. Enes, P. S. Almeida, C. Baquero, and J. Leitão. 2019. Efficient Synchronization of State-Based CRDTs. In 2019 IEEE 35th International Conference on Data Engineering (ICDE). 148–159.
[30]
Matthias Felleisen and Robert Hieb. 1992. The Revised Report on the Syntactic Theories of Sequential Control and State. Theor. Comput. Sci. 103, 2 (Sept. 1992), 235–271.
[31]
Ivana Filipović, Peter O’Hearn, Noam Rinetzky, and Hongseok Yang. 2010. Abstraction for concurrent objects. Theoretical Computer Science 411, 51 (2010), 4379 – 4398.
[32]
Spencer P. Florence, Shu-Hung You, Jesse A. Tov, and Robert Bruce Findler. 2019. A Calculus for Esterel: If Can, Can. If No Can, No Can. Proc. ACM Program. Lang. 3, POPL, Article 61 (Jan. 2019), 29 pages.
[33]
Cédric Fournet and Georges Gonthier. 1996. The Reflexive CHAM and the Join-calculus. In Proceedings of the 23rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL ’96). ACM, New York, NY, USA, 372–385.
[34]
Seth Gilbert and Nancy Lynch. 2002. Brewer’s Conjecture and the Feasibility of Consistent, Available, Partition-tolerant Web Services. ACM SIGACT News 33, 2 (June 2002).
[35]
Jonathan Goldstein, Ahmed Abdelhamid, Mike Barnett, Sebastian Burckhardt, Badrish Chandramouli, Darren Gehring, Niel Lebeck, Umar Farooq Minhas, Ryan Newton, Rahee Ghosh Peshawaria, Tal Zaccai, and Irene Zhang. 2018. A.M.B.R.O.S.I.A: Providing Performant Virtual Resiliency for Distributed Applications. Technical Report. https://www.microsoft.com/enus/research/publication/a- m- b- r- o- s- i- a- providing- performant- virtual- resiliency- for- distributed- applications/
[36]
Alexey Gotsman and Sebastian Burckhardt. 2017. Consistency Models with Global Operation Sequencing and their Composition. In 31st International Symposium on Distributed Computing (DISC 2017) (Leibniz International Proceedings in Informatics (LIPIcs)), Andréa W. Richa (Ed.), Vol. 91. Schloss Dagstuhl–Leibniz-Zentrum fuer Informatik, Dagstuhl, Germany, 23:1–23:16.
[37]
Philipp Haller, Heather Miller, and Normen Mueller. 2018. A programming model and foundation for lineage-based distributed computation. Journal of Functional Programming 28 (2018), e7.
[38]
Joseph M. Hellerstein. 2010. The Declarative Imperative: Experiences and Conjectures in Distributed Logic. SIGMOD Rec. 39, 1 (Sept. 2010), 5–19.
[39]
Joseph M. Hellerstein and Peter Alvaro. 2019. Keeping CALM: When Distributed Consistency is Easy. CoRR abs/1901.01930 (2019). arXiv: 1901.01930 http://arxiv.org/abs/1901.01930
[40]
C. A. R. Hoare. 1978. Communicating Sequential Processes. Commun. ACM 21, 8 (Aug. 1978), 666–677.
[41]
William A Howard. 1980. The formulae-as-types notion of construction.
[42]
Michael Isard and Yuan Yu. 2009. Distributed Data-parallel Computing Using a High-level Programming Language. In Proceedings of the 2009 ACM SIGMOD International Conference on Management of Data (SIGMOD ’09). ACM, New York, NY, USA, 987–994.
[43]
Radha Jagadeesan and James Riely. 2018. Eventual Consistency for CRDTs. In Programming Languages and Systems, Amal Ahmed (Ed.). Springer International Publishing, Cham, 968–995.
[44]
Y. Jarraya, A. Eghtesadi, M. Debbabi, Y. Zhang, and M. Pourzandi. 2012. Cloud calculus: Security verification in elastic cloud computing platform. In 2012 International Conference on Collaboration Technologies and Systems (CTS). 447–454.
[45]
Alan Jeffrey. 2013a. Causality for Free!: Parametricity Implies Causality for Functional Reactive Programs. In Proceedings of the 7th Workshop on Programming Languages Meets Program Verification (PLPV ’13). ACM, New York, NY, USA, 57–68.
[46]
Alan Jeffrey. 2013b. Functional Reactive Programming with Liveness Guarantees. In Proceedings of the 18th ACM SIGPLAN International Conference on Functional Programming (ICFP ’13). ACM, New York, NY, USA, 233–244.
[47]
Alan Jeffrey. 2014. Functional Reactive Types. In Proceedings of the Joint Meeting of the Twenty-Third EACSL Annual Conference on Computer Science Logic (CSL) and the Twenty-Ninth Annual ACM/IEEE Symposium on Logic in Computer Science (LICS) (CSL-LICS ’14). ACM, New York, NY, USA, Article 54, 9 pages.
[48]
Tetsuo Kamina and Tomoyuki Aotani. 2018. Harmonizing Signals and Events with a Lightweight Extension to Java. Programming Journal 2, 3 (2018), 5.
[49]
Rajesh K. Karmani and Gul Agha. 2011. Actors. In Encyclopedia of Parallel Computing.
[50]
Martin Kleppmann, Adam Wiggins, Peter van Hardenberg, and Mark McGranaghan. 2019. Local-first software: You own your data, in spite of the cloud. Web Publication. Ink & Switch. https://www.inkandswitch.com/local- first.html
[51]
Jay Kreps, Neha Narkhede, and Jun Rao. 2011. Kafka: A distributed messaging system for log processing. In Proceedings of 6th International Workshop on Networking Meets Databases (NetDB), Athens, Greece.
[52]
Lindsey Kuper and Ryan R. Newton. 2013. LVars: Lattice-based Data Structures for Deterministic Parallelism. In Proceedings of the 2Nd ACM SIGPLAN Workshop on Functional High-performance Computing (FHPC ’13). ACM, New York, NY, USA, 71–84.
[53]
Lindsey Kuper and Ryan R. Newton. 2014. Joining Forces Toward a Unified Account of LVars and Convergent Replicated Data Types. WoDet (2014).
[54]
Ralf Lämmel. 2008. Google’s MapReduce programming model — Revisited. Science of Computer Programming 70, 1 (2008), 1 – 30.
[55]
P. J. Landin. 1966. The Next 700 Programming Languages. Commun. ACM 9, 3 (March 1966), 157–166.
[56]
Alessandro Margara and Guido Salvaneschi. 2014. We Have a DREAM: Distributed Reactive Programming with Consistency Guarantees. In Proceedings of the 8th ACM International Conference on Distributed Event-Based Systems (DEBS ’14). ACM, New York, NY, USA, 142–153.
[57]
Alexandro Margara and Guido Salvaneschi. 2018. On the Semantics of Distributed Reactive Programming: The Cost of Consistency. IEEE Transactions on Software Engineering 44, 7 (July 2018), 689–711.
[58]
Christopher Meiklejohn and Peter Van Roy. 2015a. The Implementation and Use of a Generic Dataflow Behaviour in Erlang. In Proceedings of the 14th ACM SIGPLAN Workshop on Erlang (Erlang 2015). ACM, New York, NY, USA, 39–45.
[59]
Christopher Meiklejohn and Peter Van Roy. 2015b. Lasp: A Language for Distributed, Coordination-free Programming. In Proceedings of the 17th International Symposium on Principles and Practice of Declarative Programming (PPDP ’15). ACM, New York, NY, USA, 184–195.
[60]
Christopher S. Meiklejohn. 2017. On the Design of Distributed Programming Models. In Proceedings of the Programming Models and Languages for Distributed Computing (PMLDC ’17). ACM, New York, NY, USA, Article 1, 6 pages.
[61]
Heather Miller, Philipp Haller, Normen Müller, and Jocelyn Boullier. 2016. Function Passing: A Model for Typed, Distributed Functional Programming. In Proceedings of the ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software (Onward!).
[62]
Mark S. Miller, E. Dean Tribble, and Jonathan Shapiro. 2005. Concurrency Among Strangers. In Proc. Int. Symp. on Trustworthy Global Computing.
[63]
R. Milner. 1982. A Calculus of Communicating Systems. Springer-Verlag, Berlin, Heidelberg.
[64]
Robin Milner, Joachim Parrow, and David Walker. 1992. A Calculus of Mobile Processes, I. Inf. Comput. 100, 1 (Sept. 1992), 1–40.
[65]
Ragnar Mogk, Lars Baumgärtner, Guido Salvaneschi, Bernd Freisleben, and Mira Mezini. 2018. Fault-tolerant Distributed Reactive Programming. In 32nd European Conference on Object-Oriented Programming (ECOOP 2018) (Leibniz International Proceedings in Informatics (LIPIcs)), Todd Millstein (Ed.), Vol. 109. Schloss Dagstuhl–Leibniz-Zentrum fuer Informatik, Dagstuhl, Germany, 1:1–1:26.
[66]
Florian Myter, Tim Coppieters, Christophe Scholliers, and Wolfgang De Meuter. 2016. I Now Pronounce You Reactive and Consistent: Handling Distributed and Replicated State in Reactive Programming. In Proceedings of the 3rd International Workshop on Reactive and Event-Based Languages and Systems (REBLS 2016). ACM, New York, NY, USA, 1–8.
[67]
Florian Myter, Christophe Scholliers, and Wolfgang De Meuter. 2018. A CAPable Distributed Programming Model. In Proceedings of the 2018 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software (Onward! 2018). ACM, New York, NY, USA, 88–98.
[68]
Christopher Olston, Benjamin Reed, Utkarsh Srivastava, Ravi Kumar, and Andrew Tomkins. 2008. Pig Latin: A Not-so-foreign Language for Data Processing. In Proceedings of the 2008 ACM SIGMOD International Conference on Management of Data (SIGMOD ’08). ACM, New York, NY, USA, 1099–1110.
[69]
Guido Salvaneschi, Gerold Hintz, and Mira Mezini. 2014. REScala: Bridging Between Object-oriented and Functional Style in Reactive Applications. In Proceedings of the 13th International Conference on Modularity (MODULARITY ’14). ACM, New York, NY, USA, 25–36.
[70]
Guido Salvaneschi, Sebastian Proksch, Sven Amann, Sarah Nadi, and Mira Mezini. 2017. On the Positive Effect of Reactive Programming on Software Comprehension: An Empirical Study. IEEE Trans. Softw. Eng. 43, 12 (Dec. 2017), 1125–1143.
[71]
Marc Shapiro, Annette Bieniusa, Nuno M. Preguiça, Valter Balegas, and Christopher Meiklejohn. 2018. Just-Right Consistency: reconciling availability and safety. CoRR abs/1801.06340 (2018). arXiv: 1801.06340 http://arxiv.org/abs/1801.06340
[72]
Marc Shapiro, Nuno Preguiça, Carlos Baquero, and Marek Zawirski. 2011a. A comprehensive study of Convergent and Commutative Replicated Data Types. Research Report RR-7506. Inria – Centre Paris-Rocquencourt ; INRIA. 50 pages. https://hal.inria.fr/inria- 00555588
[73]
Marc Shapiro, Nuno Preguiça, Carlos Baquero, and Marek Zawirski. 2011b. Conflict-Free Replicated Data Types. In Stabilization, Safety, and Security of Distributed Systems, Xavier Défago, Franck Petit, and Vincent Villain (Eds.). Springer, Berlin, Heidelberg, 386–400.
[74]
Klaus v. Gleissenthall, Rami Gökhan Kıcı, Alexander Bakst, Deian Stefan, and Ranjit Jhala. 2019. Pretend Synchrony: Synchronous Verification of Asynchronous Distributed Programs. Proc. ACM Program. Lang. 3, POPL, Article 59 (Jan. 2019), 30 pages.
[75]
Tom Van Cutsem, Elisa Gonzalez Boix, Christophe Scholliers, Andoni Lombide Carreton, Dries Harnie, Kevin Pinte, and Wolfgang De Meuter. 2014. AmbientTalk: Programming Responsive Mobile Peer-to-peer Applications with Actors. Computer Languages, Systems & Structures 40, 3-4 (Oct. 2014).
[76]
Malte Viering, Tzu-Chun Chen, Patrick Eugster, Raymond Hu, and Lukasz Ziarek. 2018. A Typing Discipline for Statically Verified Crash Failure Handling in Distributed Systems. In Programming Languages and Systems, Amal Ahmed (Ed.). Springer International Publishing, Cham, 799–826.
[77]
Chao Wang, Constantin Enea, Suha Orhun Mutluergil, and Gustavo Petri. 2019. Replication-aware Linearizability. In Proceedings of the 40th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI 2019). ACM, New York, NY, USA, 980–993.
[78]
Pascal Weisenburger, Mirko Köhler, and Guido Salvaneschi. 2018. Distributed System Development with ScalaLoci. Proc. ACM Program. Lang. 2, OOPSLA, Article 129 (Oct. 2018), 30 pages.
[79]
W. Yu, F. Liang, X. He, W. G. Hatcher, C. Lu, J. Lin, and X. Yang. 2018. A Survey on the Edge Computing for the Internet of Things. IEEE Access 6 (2018), 6900–6919.
[80]
Matei Zaharia, Mosharaf Chowdhury, Tathagata Das, Ankur Dave, Justin Ma, Murphy McCauley, Michael J. Franklin, Scott Shenker, and Ion Stoica. 2012. Resilient Distributed Datasets: A Fault-tolerant Abstraction for In-memory Cluster Computing. In Proceedings of the 9th USENIX Conference on Networked Systems Design and Implementation (NSDI). https://www.usenix.org/system/files/conference/nsdi12/nsdi12- final138.pdf
[81]
Irene Zhang, Adriana Szekeres, Dana Van Aken, Isaac Ackerman, Steven D. Gribble, Arvind Krishnamurthy, and Henry M. Levy. 2014. Customizable and Extensible Deployment for Mobile/Cloud Applications. In 11th USENIX Symposium on Operating Systems Design and Implementation (OSDI 14). USENIX Association, Broomfield, CO, 97–112. https: //www.usenix.org/conference/osdi14/technical- sessions/presentation/zhang

Cited By

View all
  • (2024)LoRe: A Programming Model for Verifiably Safe Local-first SoftwareACM Transactions on Programming Languages and Systems10.1145/363376946:1(1-26)Online publication date: 15-Jan-2024
  • (2024)Bridging Between Active Objects: Multitier Programming for Distributed, Concurrent SystemsActive Object Languages: Current Research Trends10.1007/978-3-031-51060-1_4(92-122)Online publication date: 29-Jan-2024
  • (2023)Developing Distributed Systems with Multiparty Functional Reactive ProgrammingProceedings of the 2023 5th World Symposium on Software Engineering10.1145/3631991.3632000(61-66)Online publication date: 22-Sep-2023
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image Proceedings of the ACM on Programming Languages
Proceedings of the ACM on Programming Languages  Volume 3, Issue OOPSLA
October 2019
2077 pages
EISSN:2475-1421
DOI:10.1145/3366395
Issue’s Table of Contents
This work is licensed under a Creative Commons Attribution International 4.0 License.

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 10 October 2019
Published in PACMPL Volume 3, Issue OOPSLA

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. distributed systems
  2. fault tolerance
  3. interactive applications

Qualifiers

  • Research-article

Funding Sources

  • HMWK LOEWE
  • European Research Council
  • Deutsche Forschungsgemeinschaft

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)175
  • Downloads (Last 6 weeks)19
Reflects downloads up to 28 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2024)LoRe: A Programming Model for Verifiably Safe Local-first SoftwareACM Transactions on Programming Languages and Systems10.1145/363376946:1(1-26)Online publication date: 15-Jan-2024
  • (2024)Bridging Between Active Objects: Multitier Programming for Distributed, Concurrent SystemsActive Object Languages: Current Research Trends10.1007/978-3-031-51060-1_4(92-122)Online publication date: 29-Jan-2024
  • (2023)Developing Distributed Systems with Multiparty Functional Reactive ProgrammingProceedings of the 2023 5th World Symposium on Software Engineering10.1145/3631991.3632000(61-66)Online publication date: 22-Sep-2023
  • (2023)Realizing Persistent Signals in JavaScriptProceedings of the 10th ACM SIGPLAN International Workshop on Reactive and Event-Based Languages and Systems10.1145/3623506.3623576(25-30)Online publication date: 19-Oct-2023
  • (2023)Historiographer: Strongly-Consistent Distributed Reactive Programming with Minimal LockingCompanion Proceedings of the 2023 ACM SIGPLAN International Conference on Systems, Programming, Languages, and Applications: Software for Humanity10.1145/3618305.3623597(31-33)Online publication date: 22-Oct-2023
  • (2023)High-performance Deterministic Concurrency Using Lingua FrancaACM Transactions on Architecture and Code Optimization10.1145/361768720:4(1-29)Online publication date: 26-Oct-2023
  • (2022)Reactive Programming on the Bare Metal: A Formal Model for a Low-Level Reactive Virtual MachineProceedings of the 9th ACM SIGPLAN International Workshop on Reactive and Event-Based Languages and Systems10.1145/3563837.3568342(50-62)Online publication date: 29-Nov-2022
  • (2022)Distributed Persistent Signals: Architecture and ImplementationProceedings of the 9th ACM SIGPLAN International Workshop on Reactive and Event-Based Languages and Systems10.1145/3563837.3568341(13-23)Online publication date: 29-Nov-2022
  • (2022)Programming Support for Local-First Software: Enabling the Design of Privacy-Preserving Distributed Software without Relying on the CloudCompanion Proceedings of the 2022 ACM SIGPLAN International Conference on Systems, Programming, Languages, and Applications: Software for Humanity10.1145/3563768.3565546(21-24)Online publication date: 29-Nov-2022
  • (2022)LoRe: Local-First Reactive Programming with Verified Safety GuaranteesCompanion Proceedings of the 2022 ACM SIGPLAN International Conference on Systems, Programming, Languages, and Applications: Software for Humanity10.1145/3563768.3563952(57-59)Online publication date: 29-Nov-2022
  • Show More Cited By

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Full Access

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media