{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,10,9]],"date-time":"2025-10-09T21:00:44Z","timestamp":1760043644966,"version":"3.41.0"},"reference-count":79,"publisher":"Association for Computing Machinery (ACM)","issue":"OOPSLA","license":[{"start":{"date-parts":[[2019,10,10]],"date-time":"2019-10-10T00:00:00Z","timestamp":1570665600000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"funder":[{"name":"HMWK LOEWE","award":["NICER, emergenCITY"],"award-info":[{"award-number":["NICER, emergenCITY"]}]},{"name":"European Research Council","award":["321217,862535"],"award-info":[{"award-number":["321217,862535"]}]},{"DOI":"10.13039\/501100001659","name":"Deutsche Forschungsgemeinschaft","doi-asserted-by":"crossref","award":["415626024, SFB 1053"],"award-info":[{"award-number":["415626024, SFB 1053"]}],"id":[{"id":"10.13039\/501100001659","id-type":"DOI","asserted-by":"crossref"}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["Proc. ACM Program. Lang."],"published-print":{"date-parts":[[2019,10,10]]},"abstract":"<jats:p>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.<\/jats:p>\n          <jats:p>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.<\/jats:p>","DOI":"10.1145\/3360570","type":"journal-article","created":{"date-parts":[[2019,10,11]],"date-time":"2019-10-11T14:53:33Z","timestamp":1570805613000},"page":"1-29","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":14,"title":["A fault-tolerant programming model for distributed interactive applications"],"prefix":"10.1145","volume":"3","author":[{"given":"Ragnar","family":"Mogk","sequence":"first","affiliation":[{"name":"TU Darmstadt, Germany"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Joscha","family":"Drechsler","sequence":"additional","affiliation":[{"name":"TU Darmstadt, Germany"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Guido","family":"Salvaneschi","sequence":"additional","affiliation":[{"name":"TU Darmstadt, Germany"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Mira","family":"Mezini","sequence":"additional","affiliation":[{"name":"TU Darmstadt, Germany"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2019,10,10]]},"reference":[{"key":"e_1_2_2_1_1","doi-asserted-by":"publisher","DOI":"10.5555\/7929"},{"key":"e_1_2_2_2_1","unstructured":"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 ."},{"key":"e_1_2_2_3_1","unstructured":"Akka. 2019b. Documentation. http:\/\/akka.io\/docs .  Akka. 2019b. Documentation. http:\/\/akka.io\/docs ."},{"key":"e_1_2_2_4_1","doi-asserted-by":"publisher","DOI":"10.1007\/s00778-014-0357-y"},{"key":"e_1_2_2_5_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.jpdc.2017.08.003"},{"key":"e_1_2_2_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/1810891.1810910"},{"volume-title":"Observed Communication Semantics for Classical Processes","author":"Atkey Robert","key":"e_1_2_2_7_1"},{"key":"e_1_2_2_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/2484239.2484267"},{"volume-title":"Orleans: Distributed Virtual Actors for Programmability and Scalability. Technical Report. (MSR-TR-2014-41, 24)","year":"2014","author":"Bernstein P.","key":"e_1_2_2_9_1"},{"key":"e_1_2_2_10_1","doi-asserted-by":"publisher","DOI":"10.1145\/3133931"},{"key":"e_1_2_2_11_1","doi-asserted-by":"publisher","DOI":"10.1016\/0167-6423(92)90005-V"},{"key":"e_1_2_2_12_1","doi-asserted-by":"publisher","DOI":"10.1145\/2889443.2889452"},{"key":"e_1_2_2_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/3276522"},{"key":"e_1_2_2_14_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-31057-7_14"},{"key":"e_1_2_2_15_1","doi-asserted-by":"publisher","DOI":"10.4230\/LIPIcs.ECOOP.2015.568"},{"key":"e_1_2_2_16_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-662-54434-1_9"},{"volume-title":"Lightweight Asynchronous Snapshots for Distributed Dataflows. CoRR abs\/1506.08603","year":"2015","author":"Carbone Paris","key":"e_1_2_2_17_1"},{"key":"e_1_2_2_18_1","doi-asserted-by":"publisher","DOI":"10.1145\/292540.292550"},{"key":"e_1_2_2_19_1","doi-asserted-by":"publisher","DOI":"10.1145\/1806596.1806638"},{"key":"e_1_2_2_20_1","doi-asserted-by":"publisher","DOI":"10.1145\/2391229.2391230"},{"key":"e_1_2_2_21_1","doi-asserted-by":"publisher","DOI":"10.1007\/11693024_20"},{"key":"e_1_2_2_22_1","doi-asserted-by":"publisher","DOI":"10.1145\/2491956.2462161"},{"key":"e_1_2_2_23_1","doi-asserted-by":"publisher","DOI":"10.1145\/3290320"},{"key":"e_1_2_2_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/1327452.1327492"},{"key":"e_1_2_2_25_1","doi-asserted-by":"publisher","DOI":"10.1145\/3276477"},{"key":"e_1_2_2_26_1","doi-asserted-by":"publisher","DOI":"10.1145\/2660193.2660240"},{"key":"e_1_2_2_27_1","doi-asserted-by":"publisher","DOI":"10.1145\/2525528.2525531"},{"key":"e_1_2_2_28_1","doi-asserted-by":"publisher","DOI":"10.1145\/258948.258973"},{"key":"e_1_2_2_29_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICDE.2019.00022"},{"key":"e_1_2_2_30_1","doi-asserted-by":"publisher","DOI":"10.1016\/0304-3975(92)90014-7"},{"key":"e_1_2_2_31_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.tcs.2010.09.021"},{"key":"e_1_2_2_32_1","doi-asserted-by":"publisher","DOI":"10.1145\/3290374"},{"key":"e_1_2_2_33_1","doi-asserted-by":"publisher","DOI":"10.1145\/237721.237805"},{"key":"e_1_2_2_34_1","doi-asserted-by":"publisher","DOI":"10.1145\/564585.564601"},{"key":"e_1_2_2_36_1","doi-asserted-by":"publisher","DOI":"10.4230\/LIPIcs.DISC.2017.23"},{"key":"e_1_2_2_37_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796818000035"},{"key":"e_1_2_2_38_1","doi-asserted-by":"publisher","DOI":"10.1145\/1860702.1860704"},{"volume-title":"Hellerstein and Peter Alvaro","year":"2019","author":"Joseph","key":"e_1_2_2_39_1"},{"key":"e_1_2_2_40_1","doi-asserted-by":"publisher","DOI":"10.1145\/359576.359585"},{"key":"e_1_2_2_41_1","unstructured":"William A Howard. 1980. The formulae-as-types notion of construction.  William A Howard. 1980. The formulae-as-types notion of construction."},{"key":"e_1_2_2_42_1","doi-asserted-by":"publisher","DOI":"10.1145\/1559845.1559962"},{"key":"e_1_2_2_43_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-319-89884-1_34"},{"key":"e_1_2_2_44_1","doi-asserted-by":"publisher","DOI":"10.1109\/CTS.2012.6261089"},{"key":"e_1_2_2_45_1","doi-asserted-by":"publisher","DOI":"10.1145\/2428116.2428127"},{"key":"e_1_2_2_46_1","doi-asserted-by":"publisher","DOI":"10.1145\/2500365.2500584"},{"key":"e_1_2_2_47_1","doi-asserted-by":"publisher","DOI":"10.1145\/2603088.2603106"},{"key":"e_1_2_2_48_1","doi-asserted-by":"publisher","DOI":"10.22152\/programming-journal.org\/2018\/2\/5"},{"key":"e_1_2_2_49_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-0-387-09766-4_125"},{"volume-title":"Local-first software: You own your data, in spite of the cloud. Web Publication. Ink &amp","author":"Kleppmann Martin","key":"e_1_2_2_50_1"},{"volume-title":"Proceedings of 6th International Workshop on Networking Meets Databases (NetDB)","year":"2011","author":"Kreps Jay","key":"e_1_2_2_51_1"},{"key":"e_1_2_2_52_1","doi-asserted-by":"publisher","DOI":"10.1145\/2502323.2502326"},{"volume-title":"Newton","year":"2014","author":"Kuper Lindsey","key":"e_1_2_2_53_1"},{"key":"e_1_2_2_54_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.scico.2007.07.001"},{"key":"e_1_2_2_55_1","doi-asserted-by":"publisher","DOI":"10.1145\/365230.365257"},{"key":"e_1_2_2_56_1","doi-asserted-by":"publisher","DOI":"10.1145\/2611286.2611290"},{"key":"e_1_2_2_57_1","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2018.2833109"},{"key":"e_1_2_2_58_1","doi-asserted-by":"publisher","DOI":"10.1145\/2804295.2804300"},{"key":"e_1_2_2_59_1","doi-asserted-by":"publisher","DOI":"10.1145\/2790449.2790525"},{"key":"e_1_2_2_60_1","doi-asserted-by":"publisher","DOI":"10.1145\/3166089.3166093"},{"key":"e_1_2_2_61_1","doi-asserted-by":"publisher","DOI":"10.1145\/2986012.2986014"},{"key":"e_1_2_2_62_1","doi-asserted-by":"publisher","DOI":"10.1007\/11580850_12"},{"volume-title":"A Calculus of Communicating Systems","author":"Milner R.","key":"e_1_2_2_63_1"},{"key":"e_1_2_2_64_1","doi-asserted-by":"publisher","DOI":"10.1016\/0890-5401(92)90008-4"},{"key":"e_1_2_2_65_1","doi-asserted-by":"publisher","DOI":"10.4230\/LIPIcs.ECOOP.2018.1"},{"key":"e_1_2_2_66_1","doi-asserted-by":"publisher","DOI":"10.1145\/3001929.3001930"},{"key":"e_1_2_2_67_1","doi-asserted-by":"publisher","DOI":"10.1145\/3276954.3276957"},{"key":"e_1_2_2_68_1","doi-asserted-by":"publisher","DOI":"10.1145\/1376616.1376726"},{"key":"e_1_2_2_69_1","doi-asserted-by":"publisher","DOI":"10.1145\/2577080.2577083"},{"key":"e_1_2_2_70_1","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2017.2655524"},{"volume-title":"Just-Right Consistency: reconciling availability and safety. CoRR abs\/1801.06340","year":"2018","author":"Shapiro Marc","key":"e_1_2_2_71_1"},{"key":"e_1_2_2_73_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-24550-3_29"},{"key":"e_1_2_2_74_1","doi-asserted-by":"publisher","DOI":"10.1145\/3290372"},{"key":"e_1_2_2_75_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.cl.2014.05.002"},{"key":"e_1_2_2_76_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-319-89884-1_28"},{"key":"e_1_2_2_77_1","doi-asserted-by":"publisher","DOI":"10.1145\/3314221.3314617"},{"key":"e_1_2_2_78_1","doi-asserted-by":"publisher","DOI":"10.1145\/3276499"},{"key":"e_1_2_2_79_1","doi-asserted-by":"publisher","DOI":"10.1109\/ACCESS.2017.2778504"},{"volume-title":"Proceedings of the 9th USENIX Conference on Networked Systems Design and Implementation (NSDI). https:\/\/www.usenix.org\/system\/files\/conference\/nsdi12\/nsdi12- final138","year":"2012","author":"Zaharia Matei","key":"e_1_2_2_80_1"},{"volume-title":"Customizable and Extensible Deployment for Mobile\/Cloud Applications. In 11th USENIX Symposium on Operating Systems Design and Implementation (OSDI 14)","author":"Zhang Irene","key":"e_1_2_2_81_1"}],"container-title":["Proceedings of the ACM on Programming Languages"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3360570","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3360570","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T23:22:59Z","timestamp":1750202579000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3360570"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2019,10,10]]},"references-count":79,"journal-issue":{"issue":"OOPSLA","published-print":{"date-parts":[[2019,10,10]]}},"alternative-id":["10.1145\/3360570"],"URL":"https:\/\/doi.org\/10.1145\/3360570","relation":{},"ISSN":["2475-1421"],"issn-type":[{"type":"electronic","value":"2475-1421"}],"subject":[],"published":{"date-parts":[[2019,10,10]]},"assertion":[{"value":"2019-10-10","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}