{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,8,30]],"date-time":"2025-08-30T16:25:47Z","timestamp":1756571147232,"version":"3.37.3"},"reference-count":97,"publisher":"Institute of Electrical and Electronics Engineers (IEEE)","issue":"7","license":[{"start":{"date-parts":[[2018,7,1]],"date-time":"2018-07-01T00:00:00Z","timestamp":1530403200000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/ieeexplore.ieee.org\/Xplorehelp\/downloads\/license-information\/IEEE.html"}],"funder":[{"DOI":"10.13039\/100010663","name":"H2020 European Research Council","doi-asserted-by":"publisher","award":["321217"],"award-info":[{"award-number":["321217"]}],"id":[{"id":"10.13039\/100010663","id-type":"DOI","asserted-by":"publisher"}]},{"DOI":"10.13039\/501100001659","name":"German Research Foundation","doi-asserted-by":"crossref","id":[{"id":"10.13039\/501100001659","id-type":"DOI","asserted-by":"crossref"}]},{"name":"DFG","award":["SA 2918\/2-1"],"award-info":[{"award-number":["SA 2918\/2-1"]}]},{"name":"AWS Cloud Credits"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["IIEEE Trans. Software Eng."],"published-print":{"date-parts":[[2018,7,1]]},"DOI":"10.1109\/tse.2018.2833109","type":"journal-article","created":{"date-parts":[[2018,5,4]],"date-time":"2018-05-04T19:08:15Z","timestamp":1525460895000},"page":"689-711","source":"Crossref","is-referenced-by-count":20,"title":["On the Semantics of Distributed Reactive Programming: The Cost of Consistency"],"prefix":"10.1109","volume":"44","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-0023-8639","authenticated-orcid":false,"given":"Alessandro","family":"Margara","sequence":"first","affiliation":[]},{"given":"Guido","family":"Salvaneschi","sequence":"additional","affiliation":[]}],"member":"263","reference":[{"key":"ref39","doi-asserted-by":"publisher","DOI":"10.1145\/319566.319567"},{"journal-title":"Concurrency Control and Recovery in Database Systems","year":"1987","author":"bernstein","key":"ref38"},{"key":"ref33","doi-asserted-by":"publisher","DOI":"10.1109\/ICDCSW.2002.1030837"},{"key":"ref32","doi-asserted-by":"publisher","DOI":"10.1145\/1327452.1327492"},{"key":"ref31","doi-asserted-by":"publisher","DOI":"10.1145\/1995441.1995445"},{"key":"ref30","doi-asserted-by":"publisher","DOI":"10.1109\/TPDS.2013.39"},{"key":"ref37","doi-asserted-by":"publisher","DOI":"10.1145\/1640089.1640091"},{"key":"ref36","article-title":"Lightweight asynchronous snapshots for distributed dataflows","author":"carbone","year":"2015","journal-title":"CoRR"},{"key":"ref35","doi-asserted-by":"publisher","DOI":"10.1145\/214451.214456"},{"key":"ref34","doi-asserted-by":"publisher","DOI":"10.1109\/DSN.2002.1028881"},{"article-title":"Hermes: A scalable event-based middleware","year":"2004","author":"pietzuch","key":"ref28"},{"key":"ref27","doi-asserted-by":"publisher","DOI":"10.1109\/P2P.2008.13"},{"key":"ref29","doi-asserted-by":"publisher","DOI":"10.1145\/2002259.2002285"},{"key":"ref20","doi-asserted-by":"publisher","DOI":"10.1145\/130704.130708"},{"key":"ref22","doi-asserted-by":"publisher","DOI":"10.1109\/71.388042"},{"key":"ref21","doi-asserted-by":"publisher","DOI":"10.1145\/160551.160553"},{"key":"ref24","doi-asserted-by":"publisher","DOI":"10.1145\/1210525.1210530"},{"key":"ref23","doi-asserted-by":"publisher","DOI":"10.1145\/1041680.1041682"},{"year":"0","key":"ref26"},{"key":"ref25","doi-asserted-by":"publisher","DOI":"10.1145\/2491956.2462161"},{"key":"ref50","doi-asserted-by":"publisher","DOI":"10.22152\/programming-journal.org\/2017\/1\/12"},{"key":"ref51","first-page":"796","article-title":"Debugging for reactive programming","author":"salvaneschi","year":"2016","journal-title":"Proc 38th Int Conf Softw Eng"},{"key":"ref59","doi-asserted-by":"publisher","DOI":"10.1109\/85.329757"},{"key":"ref58","doi-asserted-by":"crossref","first-page":"29","DOI":"10.1145\/2724525.2724571","article-title":"Structured synchronous reactive programming with C&#x00E9;u","author":"sant\u2019anna","year":"2015","journal-title":"Proc of the 14th Int Conf on Modularity"},{"key":"ref57","doi-asserted-by":"publisher","DOI":"10.1109\/JPROC.2002.805826"},{"key":"ref56","doi-asserted-by":"publisher","DOI":"10.1145\/3141858.3141861"},{"key":"ref55","doi-asserted-by":"crossref","first-page":"43","DOI":"10.1145\/3055378.3055385","article-title":"Vehicle platooning simulations with\n functional reactive programming","author":"finkbeiner","year":"2017","journal-title":"Proc 1st Int Workshop Safe Control Connected Auton Vehicles"},{"key":"ref54","doi-asserted-by":"crossref","first-page":"36","DOI":"10.1145\/2892664.2892670","article-title":"Emfrp: A functional reactive programming language for small-scale embedded systems","author":"sawada","year":"2016","journal-title":"Companion Proc of the 15th Intl Conf on Modularity"},{"key":"ref53","doi-asserted-by":"crossref","DOI":"10.1145\/3180155.3180156","article-title":"Debugging\n data-flows in reactive programs","author":"banken","year":"2018","journal-title":"Proc 39th Int Conf Softw Eng"},{"key":"ref52","doi-asserted-by":"crossref","first-page":"2:1","DOI":"10.1145\/3110246","article-title":"Testing and debugging functional reactive programming","volume":"1","author":"perez","year":"2017","journal-title":"Proc ACM Program Languages"},{"key":"ref40","doi-asserted-by":"publisher","DOI":"10.1145\/2987550.2987559"},{"key":"ref4","doi-asserted-by":"publisher","DOI":"10.1145\/2635868.2635895"},{"journal-title":"Design Patterns Elements of Reusable Object-Oriented Software","year":"1995","author":"johnson","key":"ref3"},{"key":"ref6","first-page":"294","article-title":"Embedding dynamic dataflow in a call-by-value language","author":"cooper","year":"2006","journal-title":"Proc Eur Conf Program Languages Syst"},{"key":"ref5","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2017.2655524"},{"key":"ref8","first-page":"5:1","article-title":"Ways to react: Comparing reactive languages and complex event processing","author":"margara","year":"2013","journal-title":"Proc Workshop Reactivity Events Modularity"},{"key":"ref7","first-page":"226","article-title":"Towards\n distributed reactive programming","author":"salvaneschi","year":"2013","journal-title":"Proc Int Conf"},{"key":"ref49","doi-asserted-by":"publisher","DOI":"10.1145\/2451436.2451442"},{"key":"ref9","first-page":"361","article-title":"Distributed REScala: An update algorithm\n for distributed reactive programming","author":"drechsler","year":"2014","journal-title":"Proc Conf Object-Oriented Program Syst Lang Appl"},{"key":"ref46","doi-asserted-by":"crossref","DOI":"10.1007\/978-3-540-44833-4_6","article-title":"Arrows, robots, and functional reactive\n programming","author":"hudak","year":"2003","journal-title":"Advanced Functional Programming"},{"key":"ref45","doi-asserted-by":"publisher","DOI":"10.1145\/1596638.1596643"},{"key":"ref48","first-page":"589","article-title":"Overview of the enterprise Javabeans component model","author":"blevins","year":"2001","journal-title":"Component-Based Software"},{"key":"ref47","doi-asserted-by":"crossref","first-page":"29","DOI":"10.1007\/3-540-45241-9_3","article-title":"Frapp&#x00E9;: Functional reactive programming in Java","author":"courtney","year":"2001","journal-title":"Proceedings of the 5th International Symposium on Practical Aspects of Declarative Languages"},{"key":"ref42","doi-asserted-by":"publisher","DOI":"10.1145\/3103111.3104044"},{"key":"ref41","doi-asserted-by":"publisher","DOI":"10.1145\/2957319.2957377"},{"key":"ref44","doi-asserted-by":"publisher","DOI":"10.1109\/5.97300"},{"key":"ref43","doi-asserted-by":"publisher","DOI":"10.1145\/258948.258973"},{"key":"ref73","first-page":"12","article-title":"The padres distributed\n publish\/subscribe system","author":"fidler","year":"2005","journal-title":"Proc Int Conf Feature Interactions Telecommun Softw Syst"},{"key":"ref72","doi-asserted-by":"publisher","DOI":"10.1109\/ICDCSW.2002.1030837"},{"journal-title":"Distributed Event-Based Systems","year":"2006","author":"m\u00fchl","key":"ref71"},{"key":"ref70","doi-asserted-by":"crossref","first-page":"180","DOI":"10.1007\/978-3-319-68972-2_12","article-title":"Quality-aware reactive programming for the internet of things","author":"proen\u00e7a","year":"2017","journal-title":"Proc 7th Int Conf Fundam Softw Eng"},{"key":"ref76","doi-asserted-by":"publisher","DOI":"10.1145\/2187671.2187677"},{"journal-title":"The Power of Events An Introduction to Complex Event Processing in Distributed Enterprise Systems","year":"2001","author":"luckham","key":"ref77"},{"key":"ref74","doi-asserted-by":"publisher","DOI":"10.1145\/966618.966627"},{"key":"ref75","doi-asserted-by":"publisher","DOI":"10.1145\/857076.857078"},{"journal-title":"Event Processing in Action","year":"2010","author":"etzion","key":"ref78"},{"key":"ref79","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-44892-6_4"},{"key":"ref60","doi-asserted-by":"crossref","first-page":"6","DOI":"10.1145\/2790449.2790509","article-title":"ReactiveML,\n ten years later","author":"mandel","year":"2015","journal-title":"Proc 17th ACM SIGPLAN Int Symp Principles Practice Declarative Program"},{"key":"ref62","first-page":"1","article-title":"IceDust: Incremental and eventual computation of derived values in persistent object graphs","author":"harkes","year":"2016","journal-title":"Proc Europ Conf Object-Oriented Programming"},{"key":"ref61","first-page":"156","article-title":"Adapton: Composable, demand-driven\n incremental computation","author":"hammer","year":"2014","journal-title":"Proc ACM SIGPLAN Conf Programming Lang Des Implementation"},{"key":"ref63","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-13953-6_3"},{"key":"ref64","doi-asserted-by":"publisher","DOI":"10.22152\/programming-journal.org\/2018\/2\/5"},{"key":"ref65","doi-asserted-by":"publisher","DOI":"10.1145\/2160718.2160735"},{"key":"ref66","first-page":"7:1","article-title":"Leveraging sequential computation for programming efficient and reliable\n distributed systems","author":"kuraj","year":"2017","journal-title":"Proc 2nd Summit Advances Program Languages"},{"key":"ref67","doi-asserted-by":"publisher","DOI":"10.1007\/11785477_16"},{"key":"ref68","first-page":"55","article-title":"Multi-tier functional reactive programming for the web","author":"reynders","year":"2014","journal-title":"Proc ACM Int Symp New Ideas New Paradigms Reflections Program Softw"},{"key":"ref2","doi-asserted-by":"publisher","DOI":"10.1145\/2501654.2501666"},{"key":"ref69","doi-asserted-by":"publisher","DOI":"10.1145\/3001929.3001930"},{"article-title":"Deprecating the observer pattern with Scala.react","year":"2012","author":"maier","key":"ref1"},{"key":"ref95","first-page":"2","article-title":"Resilient distributed datasets: A fault-tolerant abstraction for in-memory\n cluster computing","author":"zaharia","year":"2012","journal-title":"Proc 3rd Conf Netw Syst Des Implementation"},{"key":"ref94","doi-asserted-by":"publisher","DOI":"10.1109\/TKDE.2003.1198390"},{"key":"ref93","doi-asserted-by":"publisher","DOI":"10.1109\/ICDE.2008.4497489"},{"key":"ref92","doi-asserted-by":"publisher","DOI":"10.1145\/872757.872838"},{"key":"ref91","doi-asserted-by":"publisher","DOI":"10.1007\/s00778-003-0095-z"},{"key":"ref90","doi-asserted-by":"publisher","DOI":"10.1145\/872853.872854"},{"key":"ref96","first-page":"28","article-title":"Apache flink: Stream and batch processing in a single engine","volume":"38","author":"carbone","year":"2015","journal-title":"IEEE Data Eng Bull"},{"key":"ref97","doi-asserted-by":"publisher","DOI":"10.1145\/3093742.3093929"},{"key":"ref10","doi-asserted-by":"publisher","DOI":"10.1145\/2906388.2906410"},{"key":"ref11","doi-asserted-by":"publisher","DOI":"10.1145\/2611286.2611290"},{"key":"ref12","doi-asserted-by":"publisher","DOI":"10.1145\/3141858.3141859"},{"key":"ref13","first-page":"1","article-title":"Fault-tolerant reactive programming","author":"mogk","year":"2018","journal-title":"Proc Europ Conf Object-Oriented Programming"},{"key":"ref14","doi-asserted-by":"publisher","DOI":"10.1145\/2926965"},{"journal-title":"Designing Data-Intensive Web Applications","year":"2017","author":"kleppmann","key":"ref15"},{"key":"ref16","doi-asserted-by":"publisher","DOI":"10.1145\/1244381.1244393"},{"key":"ref82","first-page":"363","article-title":"Consistent streaming through time: A vision\n for event stream processing","author":"barga","year":"2007","journal-title":"Proc Biennial Conf Innovative Data Syst Res"},{"key":"ref17","doi-asserted-by":"crossref","first-page":"25","DOI":"10.1145\/2577080.2577083","article-title":"REScala:\n Bridging between object-oriented and functional style in reactive applications","author":"salvaneschi","year":"2014","journal-title":"Proc Int Conf Modularity"},{"key":"ref81","doi-asserted-by":"publisher","DOI":"10.1109\/ICDCS.2012.17"},{"key":"ref18","first-page":"215","article-title":"Virtual time and global states of distributed systems","author":"mattern","year":"1989","journal-title":"Proc of Parallel and Distributed Algorithms"},{"key":"ref84","first-page":"378","article-title":"TCEP: Adapting to dynamic user environment by enabling transitions\n between operator placement mechanisms","author":"luthra","year":"2018","journal-title":"Proc ACM Int Conf Distrib Event Based Syst"},{"key":"ref19","doi-asserted-by":"publisher","DOI":"10.1109\/2.84874"},{"key":"ref83","doi-asserted-by":"publisher","DOI":"10.1109\/SEAMS.2017.10"},{"key":"ref80","doi-asserted-by":"publisher","DOI":"10.1145\/1827418.1827427"},{"key":"ref89","doi-asserted-by":"publisher","DOI":"10.1145\/543614.543615"},{"key":"ref85","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-03013-0_26"},{"key":"ref86","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-70592-5_8"},{"key":"ref87","doi-asserted-by":"publisher","DOI":"10.1145\/1960275.1960303"},{"key":"ref88","doi-asserted-by":"publisher","DOI":"10.1145\/2577080.2577082"}],"container-title":["IEEE Transactions on Software Engineering"],"original-title":[],"link":[{"URL":"http:\/\/xplorestaging.ieee.org\/ielx7\/32\/8411354\/08354906.pdf?arnumber=8354906","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2022,1,26]],"date-time":"2022-01-26T14:01:23Z","timestamp":1643205683000},"score":1,"resource":{"primary":{"URL":"https:\/\/ieeexplore.ieee.org\/document\/8354906\/"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2018,7,1]]},"references-count":97,"journal-issue":{"issue":"7"},"URL":"https:\/\/doi.org\/10.1109\/tse.2018.2833109","relation":{},"ISSN":["0098-5589","1939-3520","2326-3881"],"issn-type":[{"type":"print","value":"0098-5589"},{"type":"electronic","value":"1939-3520"},{"type":"electronic","value":"2326-3881"}],"subject":[],"published":{"date-parts":[[2018,7,1]]}}}