{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,6,9]],"date-time":"2026-06-09T08:41:30Z","timestamp":1780994490764,"version":"3.54.1"},"reference-count":63,"publisher":"Association for Computing Machinery (ACM)","issue":"OOPSLA2","license":[{"start":{"date-parts":[[2023,10,16]],"date-time":"2023-10-16T00:00:00Z","timestamp":1697414400000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"funder":[{"DOI":"10.13039\/501100000266","name":"Engineering and Physical Sciences Research Council","doi-asserted-by":"publisher","award":["EP\/R513052\/1"],"award-info":[{"award-number":["EP\/R513052\/1"]}],"id":[{"id":"10.13039\/501100000266","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["Proc. ACM Program. Lang."],"published-print":{"date-parts":[[2023,10,16]]},"abstract":"<jats:p>Expressing parallelism and coordination is central for modern concurrent programming. Many mechanisms  \nexist for expressing both parallelism and coordination. However, the design decisions for these two mechanisms  \nare tightly intertwined. We believe that the interdependence of these two mechanisms should be recognised  \nand achieved through a single, powerful primitive. We are not the first to realise this: the prime example  \nis actor model programming, where parallelism arises through fine-grained decomposition of a program\u2019s  \nstate into actors that are able to execute independently in parallel. However, actor model programming has a  \nserious pain point: updating multiple actors as a single atomic operation is a challenging task.  \nWe address this pain point by introducing a new concurrency paradigm: Behaviour-Oriented Concurrency  \n(BoC). In BoC, we are revisiting the fundamental concept of a behaviour to provide a more transactional  \nconcurrency model. BoC enables asynchronously creating atomic and ordered units of work with exclusive  \naccess to a collection of independent resources.  \nIn this paper, we describe BoC informally in terms of examples, which demonstrate the advantages of  \nexclusive access to several independent resources, as well as the need for ordering. We define it through a  \nformal model. We demonstrate its practicality by implementing a C++ runtime. We argue its applicability  \nthrough the Savina benchmark suite: benchmarks in this suite can be more compactly represented using BoC  \nin place of Actors, and we observe comparable, if not better, performance.<\/jats:p>","DOI":"10.1145\/3622852","type":"journal-article","created":{"date-parts":[[2023,10,16]],"date-time":"2023-10-16T15:41:29Z","timestamp":1697470889000},"page":"1531-1560","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":8,"title":["When Concurrency Matters: Behaviour-Oriented Concurrency"],"prefix":"10.1145","volume":"7","author":[{"ORCID":"https:\/\/orcid.org\/0009-0000-0632-9825","authenticated-orcid":false,"given":"Luke","family":"Cheeseman","sequence":"first","affiliation":[{"name":"Imperial College London, London, UK"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0009-0004-3937-1260","authenticated-orcid":false,"given":"Matthew J.","family":"Parkinson","sequence":"additional","affiliation":[{"name":"Microsoft Azure Research, Cambridge, UK"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0009-0004-4049-134X","authenticated-orcid":false,"given":"Sylvan","family":"Clebsch","sequence":"additional","affiliation":[{"name":"Microsoft Azure Research, Cambridge, UK"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0009-0006-7034-5284","authenticated-orcid":false,"given":"Marios","family":"Kogias","sequence":"additional","affiliation":[{"name":"Imperial College London, London, UK \/ Microsoft Research, Cambridge, UK"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-1993-1142","authenticated-orcid":false,"given":"Sophia","family":"Drossopoulou","sequence":"additional","affiliation":[{"name":"Imperial College London, London, UK"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-6060-0153","authenticated-orcid":false,"given":"David","family":"Chisnall","sequence":"additional","affiliation":[{"name":"Microsoft, Cambridge, UK"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-4269-5408","authenticated-orcid":false,"given":"Tobias","family":"Wrigstad","sequence":"additional","affiliation":[{"name":"Uppsala University, Uppsala, Sweden"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0009-0000-3813-6227","authenticated-orcid":false,"given":"Paul","family":"Li\u00e9tar","sequence":"additional","affiliation":[{"name":"Microsoft, Cambridge, UK"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2023,10,16]]},"reference":[{"key":"e_1_2_1_1_1","unstructured":"[n. d.]. Transactors. https:\/\/doc.akka.io\/docs\/akka\/2.2\/scala\/transactors.html \t\t\t\t  [n. d.]. Transactors. https:\/\/doc.akka.io\/docs\/akka\/2.2\/scala\/transactors.html"},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1145\/3181853"},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.7551\/mitpress\/1086.001.0001"},{"key":"e_1_2_1_4_1","unstructured":"Developers AkkaSite. [n. d.]. Akka repo. https:\/\/akka.io\/docs\/ \t\t\t\t  Developers AkkaSite. [n. d.]. Akka repo. https:\/\/akka.io\/docs\/"},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/1465482.1465560"},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/3622846"},{"key":"e_1_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-47993-7_18"},{"key":"e_1_2_1_8_1","first-page":"181","article-title":"Exascale computing study: Technology challenges in achieving exascale systems. Defense Advanced Research Projects Agency Information Processing Techniques Office (DARPA IPTO)","volume":"15","author":"Bergman Keren","year":"2008","unstructured":"Keren Bergman , Shekhar Borkar , Dan Campbell , William Carlson , William Dally , Monty Denneau , Paul Franzon , William Harrod , Kerry Hill , and Jon Hiller . 2008 . Exascale computing study: Technology challenges in achieving exascale systems. Defense Advanced Research Projects Agency Information Processing Techniques Office (DARPA IPTO) , Tech. Rep , 15 (2008), 181 . Keren Bergman, Shekhar Borkar, Dan Campbell, William Carlson, William Dally, Monty Denneau, Paul Franzon, William Harrod, Kerry Hill, and Jon Hiller. 2008. Exascale computing study: Technology challenges in achieving exascale systems. Defense Advanced Research Projects Agency Information Processing Techniques Office (DARPA IPTO), Tech. Rep, 15 (2008), 181.","journal-title":"Tech. Rep"},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1109\/icde.2018.00010"},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1145\/3141834.3141835"},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/3358499.3361224"},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1145\/1639949.1640097"},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1155\/2010\/521797"},{"key":"e_1_2_1_14_1","unstructured":"Developers CAFSite. [n. d.]. CAF repo. https:\/\/www.actor-framework.org \t\t\t\t  Developers CAFSite. [n. d.]. CAF repo. https:\/\/www.actor-framework.org"},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/2093157.2093165"},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.5281\/zenodo.8320212"},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-45070-2_9"},{"key":"e_1_2_1_18_1","volume-title":"Pony: Co-designing a Type System and a Runtime. Ph. D. Dissertation. Ph. D. thesis","author":"Clebsch S","year":"2018","unstructured":"S Clebsch . 2018 . Pony: Co-designing a Type System and a Runtime. Ph. D. Dissertation. Ph. D. thesis , Imperial College London . S Clebsch. 2018. Pony: Co-designing a Type System and a Runtime. Ph. D. Dissertation. Ph. D. thesis, Imperial College London."},{"key":"e_1_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1145\/2824815.2824816"},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1109\/ASAMA.1999.805390"},{"key":"e_1_2_1_21_1","unstructured":"Joeri De Koster. 2015. Domains: Language abstractions for controlling shared mutable state in actor systems. Ph. D. Dissertation. PhD thesis Vrije Universiteit Brussel. \t\t\t\t  Joeri De Koster. 2015. Domains: Language abstractions for controlling shared mutable state in actor systems. Ph. D. Dissertation. PhD thesis Vrije Universiteit Brussel."},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1145\/2414639.2414644"},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1145\/2429069.2429104"},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/2160910.2160913"},{"key":"e_1_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1145\/360363.360369"},{"key":"e_1_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1145\/1040305.1040322"},{"key":"e_1_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1145\/237721.237805"},{"key":"e_1_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-45699-6_6"},{"key":"e_1_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.1145\/3572848.3577524"},{"key":"e_1_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.1145\/3564529"},{"key":"e_1_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.1145\/2398857.2384619"},{"key":"e_1_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.tcs.2008.09.019"},{"key":"e_1_2_1_33_1","doi-asserted-by":"publisher","DOI":"10.1145\/1065944.1065952"},{"key":"e_1_2_1_34_1","doi-asserted-by":"publisher","DOI":"10.1147\/sj.72.0074"},{"key":"e_1_2_1_35_1","doi-asserted-by":"publisher","DOI":"10.1145\/872035.872048"},{"key":"e_1_2_1_36_1","volume-title":"Advance Papers of the Conference. 3, 235","author":"Hewitt Carl","year":"1973","unstructured":"Carl Hewitt , Peter Bishop , and Richard Steiger . 1973 . Session 8 formalisms for artificial intelligence a universal modular actor formalism for artificial intelligence . In Advance Papers of the Conference. 3, 235 . Carl Hewitt, Peter Bishop, and Richard Steiger. 1973. Session 8 formalisms for artificial intelligence a universal modular actor formalism for artificial intelligence. In Advance Papers of the Conference. 3, 235."},{"key":"e_1_2_1_37_1","doi-asserted-by":"publisher","DOI":"10.1145\/2984043.2989218"},{"key":"e_1_2_1_38_1","doi-asserted-by":"publisher","DOI":"10.14778\/3377369.3377373"},{"key":"e_1_2_1_39_1","doi-asserted-by":"publisher","DOI":"10.1145\/2687357.2687368"},{"key":"e_1_2_1_40_1","unstructured":"Dan Kegel. 2014. The C10K problem. http:\/\/www.kegel.com\/c10k.html \t\t\t\t  Dan Kegel. 2014. The C10K problem. http:\/\/www.kegel.com\/c10k.html"},{"key":"e_1_2_1_41_1","doi-asserted-by":"publisher","DOI":"10.1145\/1378533.1378563"},{"key":"e_1_2_1_42_1","volume-title":"Data-Parallel Actors: A Programming Model for Scalable Query Serving Systems. In 19th USENIX Symposium on Networked Systems Design and Implementation (NSDI 22)","author":"Kraft Peter","year":"2022","unstructured":"Peter Kraft , Fiodar Kazhamiaka , Peter Bailis , and Matei Zaharia . 2022 . Data-Parallel Actors: A Programming Model for Scalable Query Serving Systems. In 19th USENIX Symposium on Networked Systems Design and Implementation (NSDI 22) . USENIX Association, Renton, WA. 1059\u20131074. isbn:978-1-939133-27-4 https:\/\/www.usenix.org\/conference\/nsdi22\/presentation\/kraft Peter Kraft, Fiodar Kazhamiaka, Peter Bailis, and Matei Zaharia. 2022. Data-Parallel Actors: A Programming Model for Scalable Query Serving Systems. In 19th USENIX Symposium on Networked Systems Design and Implementation (NSDI 22). USENIX Association, Renton, WA. 1059\u20131074. isbn:978-1-939133-27-4 https:\/\/www.usenix.org\/conference\/nsdi22\/presentation\/kraft"},{"key":"e_1_2_1_43_1","doi-asserted-by":"publisher","DOI":"10.1145\/2043556.2043587"},{"key":"e_1_2_1_44_1","doi-asserted-by":"publisher","DOI":"10.1145\/2486159.2486166"},{"key":"e_1_2_1_45_1","doi-asserted-by":"publisher","DOI":"10.1145\/2382756.2382773"},{"key":"e_1_2_1_46_1","doi-asserted-by":"publisher","DOI":"10.1145\/103727.103729"},{"key":"e_1_2_1_47_1","doi-asserted-by":"publisher","DOI":"10.1145\/1328438.1328448"},{"key":"e_1_2_1_48_1","doi-asserted-by":"publisher","DOI":"10.1145\/2517349.2522738"},{"key":"e_1_2_1_49_1","doi-asserted-by":"publisher","DOI":"10.1145\/1229428.1229442"},{"key":"e_1_2_1_50_1","doi-asserted-by":"publisher","DOI":"10.1109\/tools.1999.809424"},{"key":"e_1_2_1_51_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-13414-2_5"},{"key":"e_1_2_1_52_1","unstructured":"Developers PonySite. [n. d.]. Pony Github Repo. https:\/\/github.com\/ponylang\/ \t\t\t\t  Developers PonySite. [n. d.]. Pony Github Repo. https:\/\/github.com\/ponylang\/"},{"key":"e_1_2_1_53_1","doi-asserted-by":"publisher","DOI":"10.1145\/3477132.3483591"},{"key":"e_1_2_1_54_1","doi-asserted-by":"publisher","DOI":"10.1145\/3428266"},{"key":"e_1_2_1_55_1","doi-asserted-by":"publisher","DOI":"10.1145\/2988336.2988352"},{"key":"e_1_2_1_56_1","doi-asserted-by":"publisher","DOI":"10.1145\/1375527.1375568"},{"key":"e_1_2_1_57_1","doi-asserted-by":"publisher","DOI":"10.1145\/3427201"},{"key":"e_1_2_1_58_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-39038-8_13"},{"key":"e_1_2_1_59_1","doi-asserted-by":"publisher","DOI":"10.1145\/583960.583964"},{"key":"e_1_2_1_60_1","doi-asserted-by":"publisher","DOI":"10.1145\/1111037.1111067"},{"key":"e_1_2_1_61_1","doi-asserted-by":"publisher","DOI":"10.1016\/0167-8191(94)90033-7"},{"key":"e_1_2_1_62_1","doi-asserted-by":"publisher","DOI":"10.1145\/1378533.1378584"},{"key":"e_1_2_1_63_1","first-page":"1","volume-title":"1 million is so","year":"2011","unstructured":"WhatsApp. 2012. 1 million is so 2011 . https:\/\/blog.whatsapp.com\/ 1 -million-is-so-2011 WhatsApp. 2012. 1 million is so 2011. https:\/\/blog.whatsapp.com\/1-million-is-so-2011"}],"container-title":["Proceedings of the ACM on Programming Languages"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3622852","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3622852","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,19]],"date-time":"2025-06-19T01:57:27Z","timestamp":1750298247000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3622852"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2023,10,16]]},"references-count":63,"journal-issue":{"issue":"OOPSLA2","published-print":{"date-parts":[[2023,10,16]]}},"alternative-id":["10.1145\/3622852"],"URL":"https:\/\/doi.org\/10.1145\/3622852","relation":{},"ISSN":["2475-1421"],"issn-type":[{"value":"2475-1421","type":"electronic"}],"subject":[],"published":{"date-parts":[[2023,10,16]]},"assertion":[{"value":"2023-10-16","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}