{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,10,2]],"date-time":"2026-10-02T07:47:52Z","timestamp":1790927272373,"version":"4.1.0"},"reference-count":47,"publisher":"Association for Computing Machinery (ACM)","issue":"OOPSLA","license":[{"start":{"date-parts":[[2020,11,13]],"date-time":"2020-11-13T00:00:00Z","timestamp":1605225600000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["Proc. ACM Program. Lang."],"published-print":{"date-parts":[[2020,11,13]]},"abstract":"<jats:p>Large scale distributed systems require to embrace the trade off between consistency and availability, accepting lower levels of consistency to guarantee higher availability. Existing programming languages are, however, agnostic to this compromise, resulting in consistency guarantees that are the same for the whole application and are implicitly adopted from the middleware or hardcoded in configuration files. In this paper, we propose to integrate availability in the design of an object-oriented language, allowing developers to specify different consistency and isolation constraints in the same application at the granularity of single objects. We investigate how availability levels interact with object structure and define a type system that preserves correct program behavior. Our evaluation shows that our solution performs efficiently and improves the design of distributed applications.<\/jats:p>","DOI":"10.1145\/3428256","type":"journal-article","created":{"date-parts":[[2020,11,24]],"date-time":"2020-11-24T18:36:06Z","timestamp":1606242966000},"page":"1-30","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":13,"title":["Rethinking safe consistency in distributed object-oriented programming"],"prefix":"10.1145","volume":"4","author":[{"given":"Mirko","family":"K\u00f6hler","sequence":"first","affiliation":[{"name":"TU Darmstadt, Germany"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Nafise","family":"Eskandani","sequence":"additional","affiliation":[{"name":"TU Darmstadt, Germany"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Pascal","family":"Weisenburger","sequence":"additional","affiliation":[{"name":"TU Darmstadt, Germany"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Alessandro","family":"Margara","sequence":"additional","affiliation":[{"name":"Politecnico di Milano, Italy"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Guido","family":"Salvaneschi","sequence":"additional","affiliation":[{"name":"University of St. Gallen, Switzerland"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2020,11,13]]},"reference":[{"key":"e_1_2_2_1_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICDE.2000.839388"},{"key":"e_1_2_2_2_1","unstructured":"Akka. 2009. Akka toolkit for Java and Scala. Retrieved 2019-04-06 from https:\/\/akka.io  Akka. 2009. Akka toolkit for Java and Scala. Retrieved 2019-04-06 from https:\/\/akka.io"},{"key":"e_1_2_2_3_1","unstructured":"Deepthi Devaki Akkoorath and Annette Bieniusa. 2016. Antidote: the highly-available geo-replicated database with strongest guarantees. SyncFree Technology White Paper ( 2016 ).  Deepthi Devaki Akkoorath and Annette Bieniusa. 2016. Antidote: the highly-available geo-replicated database with strongest guarantees. SyncFree Technology White Paper ( 2016 )."},{"key":"e_1_2_2_4_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.jpdc.2017.08.003"},{"key":"e_1_2_2_5_1","doi-asserted-by":"publisher","DOI":"10.14778\/2732232.2732237"},{"key":"e_1_2_2_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/2741948.2741972"},{"key":"e_1_2_2_7_1","doi-asserted-by":"publisher","DOI":"10.1145\/3133931"},{"key":"e_1_2_2_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/3093333.3009895"},{"key":"e_1_2_2_9_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-31057-7_14"},{"key":"e_1_2_2_10_1","doi-asserted-by":"publisher","DOI":"10.1145\/2535838.2535848"},{"key":"e_1_2_2_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/2038916.2038932"},{"key":"e_1_2_2_12_1","doi-asserted-by":"crossref","unstructured":"Rapha\u00ebl Collet et al. 2007. The limits of network transparency in a distributed programming language. Ph.D. Dissertation.  Rapha\u00ebl Collet et al. 2007. The limits of network transparency in a distributed programming language. Ph.D. Dissertation.","DOI":"10.1007\/11818502_7"},{"key":"e_1_2_2_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/2491245"},{"key":"e_1_2_2_14_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.jpdc.2020.05.010"},{"key":"e_1_2_2_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/360051.360056"},{"key":"e_1_2_2_16_1","doi-asserted-by":"publisher","DOI":"10.1145\/2160910.2160913"},{"key":"e_1_2_2_17_1","doi-asserted-by":"publisher","DOI":"10.1145\/360363.360369"},{"key":"e_1_2_2_18_1","first-page":"169","volume-title":"Incremental Consistency Guarantees for Replicated Objects. In 12th USENIX Symposium on Operating Systems Design and Implementation (OSDI 16)","author":"Guerraoui Rachid","year":"2016"},{"key":"e_1_2_2_19_1","doi-asserted-by":"publisher","DOI":"10.1145\/1134744.1134757"},{"key":"e_1_2_2_20_1","doi-asserted-by":"publisher","DOI":"10.1145\/2987550.2987559"},{"key":"e_1_2_2_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/3290387"},{"key":"e_1_2_2_22_1","doi-asserted-by":"publisher","DOI":"10.1145\/503502.503505"},{"key":"e_1_2_2_23_1","doi-asserted-by":"publisher","DOI":"10.1145\/3158115"},{"key":"e_1_2_2_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/359545.359563"},{"key":"e_1_2_2_25_1","article-title":"Paxos made simple","volume":"32","author":"Leslie Lamport","year":"2001","journal-title":"ACM Sigact News"},{"key":"e_1_2_2_26_1","volume-title":"Hercules: A Multi-View Cache for Real-Time Interactive Apps. Technical Report.","author":"Lebeck Niel","year":"2019"},{"key":"e_1_2_2_27_1","first-page":"281","volume-title":"Proceedings of the 2014 USENIX Conference on USENIX Annual Technical Conference (USENIX ATC'14). USENIX Association","author":"Li Cheng","year":"2014"},{"key":"e_1_2_2_28_1","doi-asserted-by":"publisher","DOI":"10.5555\/2387880.2387906"},{"key":"e_1_2_2_29_1","volume-title":"2018 USENIX Annual Technical Conference (USENIX ATC 18). USENIX Association, Boston, MA, 359-372. https:\/\/www.usenix.org\/ conference\/atc18\/presentation\/li-cheng","author":"Li Cheng","year":"2018"},{"key":"e_1_2_2_30_1","unstructured":"Pedro S. Lopes. 2018. Antidote SQL: SQL for Weakly Consistent Databases. http:\/\/hdl.handle. net\/10362\/68859  Pedro S. Lopes. 2018. Antidote SQL: SQL for Weakly Consistent Databases. http:\/\/hdl.handle. net\/10362\/68859"},{"key":"e_1_2_2_31_1","doi-asserted-by":"publisher","DOI":"10.1145\/3302424.3303987"},{"key":"e_1_2_2_32_1","doi-asserted-by":"publisher","DOI":"10.1145\/3192366.3192375"},{"key":"e_1_2_2_33_1","doi-asserted-by":"publisher","DOI":"10.1145\/3276954.3276957"},{"key":"e_1_2_2_34_1","volume-title":"Proving the Safety of Highly-Available Distributed Objects","author":"Nair Sreeja S."},{"key":"e_1_2_2_35_1","doi-asserted-by":"publisher","DOI":"10.1145\/1390630.1390656"},{"key":"e_1_2_2_36_1","doi-asserted-by":"publisher","DOI":"10.1145\/3183713.3183752"},{"key":"e_1_2_2_38_1","doi-asserted-by":"publisher","DOI":"10.1145\/2737924.2737981"},{"key":"e_1_2_2_39_1","first-page":"1150","volume-title":"Proceedings of the International Conference on Very Large Data Bases (VLDB '07)","author":"Stonebraker Michael","year":"2007"},{"key":"e_1_2_2_40_1","doi-asserted-by":"publisher","DOI":"10.1145\/2517349.2522731"},{"key":"e_1_2_2_41_1","doi-asserted-by":"publisher","DOI":"10.1145\/2213836.2213838"},{"key":"e_1_2_2_42_1","doi-asserted-by":"publisher","DOI":"10.1145\/2926965"},{"key":"e_1_2_2_43_1","doi-asserted-by":"crossref","unstructured":"Werner Vogels. 2009. Eventually Consistent. Commun. ACM 52 1 ( 2009 ) 40-44.  Werner Vogels. 2009. Eventually Consistent. Commun. ACM 52 1 ( 2009 ) 40-44.","DOI":"10.1145\/1435417.1435432"},{"key":"e_1_2_2_44_1","doi-asserted-by":"crossref","unstructured":"A.K. Wright and M. Felleisen. 1994. A Syntactic Approach to Type Soundness. Information and Computation 115 1 ( 1994 ).  A.K. Wright and M. Felleisen. 1994. A Syntactic Approach to Type Soundness. Information and Computation 115 1 ( 1994 ).","DOI":"10.1006\/inco.1994.1093"},{"key":"e_1_2_2_45_1","doi-asserted-by":"publisher","DOI":"10.1145\/502034.502038"},{"key":"e_1_2_2_46_1","doi-asserted-by":"publisher","DOI":"10.1145\/2957319.2957377"},{"key":"e_1_2_2_47_1","doi-asserted-by":"publisher","DOI":"10.1145\/3281366.3281372"},{"key":"e_1_2_2_48_1","volume-title":"The Art, Science, and Engineering of Programming","author":"Zhao Xin"}],"container-title":["Proceedings of the ACM on Programming Languages"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3428256","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3428256","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T18:02:57Z","timestamp":1750183377000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3428256"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2020,11,13]]},"references-count":47,"journal-issue":{"issue":"OOPSLA","published-print":{"date-parts":[[2020,11,13]]}},"alternative-id":["10.1145\/3428256"],"URL":"https:\/\/doi.org\/10.1145\/3428256","relation":{},"ISSN":["2475-1421"],"issn-type":[{"value":"2475-1421","type":"electronic"}],"subject":[],"published":{"date-parts":[[2020,11,13]]},"assertion":[{"value":"2020-11-13","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}