Distributed system development with ScalaLoci

Distributed applications are traditionally developed as separate modules, often in different languages, which react to events, like user input, and in turn produce new events for the other modules. Separation into components requires time-consuming integration. Manual implementation of communication...

Full description

Saved in:
Bibliographic Details
Published in:Proceedings of ACM on programming languages Vol. 2; no. OOPSLA; pp. 1 - 30
Main Authors: Weisenburger, Pascal, Köhler, Mirko, Salvaneschi, Guido
Format: Journal Article
Language:English
Published: 01.11.2018
ISSN:2475-1421, 2475-1421
Online Access:Get full text
Tags: Add Tag
No Tags, Be the first to tag this record!
Abstract Distributed applications are traditionally developed as separate modules, often in different languages, which react to events, like user input, and in turn produce new events for the other modules. Separation into components requires time-consuming integration. Manual implementation of communication forces programmers to deal with low-level details. The combination of the two results in obscure distributed data flows scattered among multiple modules, hindering reasoning about the system as a whole. The ScalaLoci distributed programming language addresses these issues with a coherent model based on placement types that enables reasoning about distributed data flows, supporting multiple software architectures via dedicated language features and abstracting over low-level communication details and data conversions. As we show, ScalaLoci simplifies developing distributed systems, reduces error-prone communication code and favors early detection of bugs.
AbstractList Distributed applications are traditionally developed as separate modules, often in different languages, which react to events, like user input, and in turn produce new events for the other modules. Separation into components requires time-consuming integration. Manual implementation of communication forces programmers to deal with low-level details. The combination of the two results in obscure distributed data flows scattered among multiple modules, hindering reasoning about the system as a whole. The ScalaLoci distributed programming language addresses these issues with a coherent model based on placement types that enables reasoning about distributed data flows, supporting multiple software architectures via dedicated language features and abstracting over low-level communication details and data conversions. As we show, ScalaLoci simplifies developing distributed systems, reduces error-prone communication code and favors early detection of bugs.
Author Weisenburger, Pascal
Köhler, Mirko
Salvaneschi, Guido
Author_xml – sequence: 1
  givenname: Pascal
  surname: Weisenburger
  fullname: Weisenburger, Pascal
  organization: TU Darmstadt, Germany
– sequence: 2
  givenname: Mirko
  surname: Köhler
  fullname: Köhler, Mirko
  organization: TU Darmstadt, Germany
– sequence: 3
  givenname: Guido
  surname: Salvaneschi
  fullname: Salvaneschi, Guido
  organization: TU Darmstadt, Germany
BookMark eNplj0tLAzEURoNUsNbiX5idq2hucmc6WUp9wkAX1fWQZG4wMo-SRKX_XsUuRFfftzgcOKdsNk4jMXYO4hIAyyslVxVqfcTmElclB5Qw-_VP2DKlVyEEaIW10nPGb0LKMdi3TF2R9inTUHT0Tv20G2jMxUfIL8XWmd40kwtn7NibPtHysAv2fHf7tH7gzeb-cX3dcCeFVhwkWCyhk-jRazSq8t6TrKm03jgAj1XtVUeuq8BpZUsCsFJYEA5JEaoFu_jxujilFMm3uxgGE_ctiPY7tD2EfpH8D-lCNjlMY44m9P_4TxVlVSU
CitedBy_id crossref_primary_10_1145_3607849
crossref_primary_10_1145_3360570
crossref_primary_10_1109_TSE_2024_3393070
crossref_primary_10_1145_3276477
crossref_primary_10_1145_3604629
crossref_primary_10_1145_3397495
crossref_primary_10_1145_3622802
crossref_primary_10_1016_j_scico_2020_102499
crossref_primary_10_1016_j_jss_2024_111976
crossref_primary_10_1145_3632398
crossref_primary_10_1016_j_iot_2024_101412
crossref_primary_10_1145_3622873
Cites_doi 10.1007/11693024_20
10.1145/2535838.2535881
10.1145/2103656.2103665
10.1145/1640089.1640091
10.1145/2491956.2462161
10.1145/1596638.1596643
10.1016/0167-6423(92)90005-V
10.1145/2093328.2093337
10.5555/1777707.1777724
10.1145/380749.380767
10.1145/2635868.2635895
10.1145/2034773.2034812
10.1145/1869459.1869489
10.1145/258948.258973
10.1145/581339.581365
10.1145/857076.857078
10.1093/comjnl/bxh120
10.1007/978-3-540-45070-2_5
10.1109/IPDPSW.2016.138
10.1145/1900160.1900173
10.1145/2611286.2611290
10.1145/2661136.2661146
10.1145/1040305.1040324
10.1145/2577080.2577083
10.1145/2951913.2951916
10.1145/3064899.3064901
10.1145/3110246
10.1145/3009837.3009880
10.1145/2660193.2660240
10.1007/978-3-642-39038-8_29
10.1007/978-3-642-13953-6_3
10.1145/2489837.2489840
10.1145/3276477
10.1145/1639950.1640058
10.1145/2716320
10.1145/3180155.3180156
10.1145/2884781.2884815
10.1145/581690.581695
10.1145/1176617.1176756
10.1145/3158130
10.1145/3001929.3001930
10.1145/1244381.1244403
10.1006/inco.1994.1093
10.1145/1345206.1345211
10.1145/1159876.1159889
10.1145/3055378.3055385
10.1109/TSE.2018.2833109
10.1007/978-3-662-44202-9_13
10.1145/195473.195481
10.1109/5.97300
10.1145/2676726.2677004
10.1145/3141858.3141861
10.1145/1236360.1236422
10.1145/2661136.2661140
ContentType Journal Article
DBID AAYXX
CITATION
DOI 10.1145/3276499
DatabaseName CrossRef
DatabaseTitle CrossRef
DatabaseTitleList CrossRef
DeliveryMethod fulltext_linktorsrc
Discipline Computer Science
EISSN 2475-1421
EndPage 30
ExternalDocumentID 10_1145_3276499
GroupedDBID AAKMM
AAYFX
AAYXX
ACM
AEFXT
AEJOY
AIKLT
AKRVB
ALMA_UNASSIGNED_HOLDINGS
CITATION
EBS
GUFHI
LHSKQ
M~E
OK1
ROL
ID FETCH-LOGICAL-c2093-121b451d24f4f94a36fffe28e5bfac11f468f3decd61c93b5e11b20b10c4e3e43
ISSN 2475-1421
IngestDate Sat Nov 29 07:50:06 EST 2025
Tue Nov 18 21:46:25 EST 2025
IsDoiOpenAccess false
IsOpenAccess true
IsPeerReviewed true
IsScholarly true
Issue OOPSLA
Language English
LinkModel OpenURL
MergedId FETCHMERGED-LOGICAL-c2093-121b451d24f4f94a36fffe28e5bfac11f468f3decd61c93b5e11b20b10c4e3e43
OpenAccessLink https://dl.acm.org/doi/pdf/10.1145/3276499
PageCount 30
ParticipantIDs crossref_primary_10_1145_3276499
crossref_citationtrail_10_1145_3276499
PublicationCentury 2000
PublicationDate 2018-11-01
PublicationDateYYYYMMDD 2018-11-01
PublicationDate_xml – month: 11
  year: 2018
  text: 2018-11-01
  day: 01
PublicationDecade 2010
PublicationTitle Proceedings of ACM on programming languages
PublicationYear 2018
References e_1_2_2_4_1
e_1_2_2_24_1
e_1_2_2_49_1
e_1_2_2_6_1
e_1_2_2_22_1
e_1_2_2_20_1
Murphy Tom (e_1_2_2_60_1)
Ramson Stefan (e_1_2_2_75_1) 2017
e_1_2_2_2_1
e_1_2_2_41_1
e_1_2_2_62_1
e_1_2_2_87_1
e_1_2_2_43_1
e_1_2_2_64_1
e_1_2_2_85_1
e_1_2_2_8_1
e_1_2_2_28_1
e_1_2_2_66_1
e_1_2_2_26_1
e_1_2_2_47_1
e_1_2_2_68_1
e_1_2_2_89_1
Salvaneschi Guido (e_1_2_2_80_1)
e_1_2_2_83_1
e_1_2_2_81_1
Hewitt Carl (e_1_2_2_44_1)
Rajchenbach-Teller David (e_1_2_2_74_1) 2010
e_1_2_2_13_1
e_1_2_2_38_1
e_1_2_2_11_1
Miller Mark S. (e_1_2_2_58_1)
e_1_2_2_30_1
e_1_2_2_76_1
e_1_2_2_32_1
e_1_2_2_53_1
e_1_2_2_17_1
e_1_2_2_34_1
e_1_2_2_55_1
e_1_2_2_15_1
e_1_2_2_36_1
e_1_2_2_57_1
e_1_2_2_78_1
e_1_2_2_70_1
e_1_2_2_72_1
e_1_2_2_25_1
e_1_2_2_48_1
e_1_2_2_5_1
e_1_2_2_23_1
e_1_2_2_7_1
e_1_2_2_21_1
e_1_2_2_1_1
Biboudis Aggelos (e_1_2_2_16_1)
e_1_2_2_3_1
e_1_2_2_40_1
e_1_2_2_63_1
e_1_2_2_86_1
e_1_2_2_42_1
e_1_2_2_65_1
e_1_2_2_84_1
e_1_2_2_9_1
e_1_2_2_29_1
e_1_2_2_67_1
e_1_2_2_27_1
e_1_2_2_46_1
e_1_2_2_69_1
e_1_2_2_88_1
Mogk Ragnar (e_1_2_2_59_1) 2018; 109
e_1_2_2_82_1
e_1_2_2_61_1
Carbone Paris (e_1_2_2_19_1) 2015
e_1_2_2_14_1
e_1_2_2_37_1
e_1_2_2_12_1
e_1_2_2_39_1
e_1_2_2_10_1
e_1_2_2_52_1
Hudak Paul (e_1_2_2_45_1) 2002
e_1_2_2_54_1
e_1_2_2_73_1
e_1_2_2_18_1
e_1_2_2_33_1
e_1_2_2_56_1
e_1_2_2_79_1
e_1_2_2_35_1
e_1_2_2_77_1
e_1_2_2_50_1
e_1_2_2_71_1
References_xml – volume-title: IJCAI ’73
  ident: e_1_2_2_44_1
– volume-title: Transactions on Aspect-Oriented Software Development XI (Lecture Notes in Computer Science)
  ident: e_1_2_2_80_1
– ident: e_1_2_2_27_1
  doi: 10.1007/11693024_20
– ident: e_1_2_2_85_1
– ident: e_1_2_2_22_1
  doi: 10.1145/2535838.2535881
– ident: e_1_2_2_47_1
  doi: 10.1145/2103656.2103665
– ident: e_1_2_2_56_1
  doi: 10.1145/1640089.1640091
– ident: e_1_2_2_29_1
  doi: 10.1145/2491956.2462161
– ident: e_1_2_2_36_1
  doi: 10.1145/1596638.1596643
– ident: e_1_2_2_14_1
  doi: 10.1016/0167-6423(92)90005-V
– ident: e_1_2_2_38_1
– ident: e_1_2_2_15_1
  doi: 10.1145/2093328.2093337
– ident: e_1_2_2_26_1
  doi: 10.5555/1777707.1777724
– ident: e_1_2_2_37_1
– volume-title: Apache Flink: Stream and Batch Processing in a Single Engine
  year: 2015
  ident: e_1_2_2_19_1
– ident: e_1_2_2_21_1
  doi: 10.1145/380749.380767
– ident: e_1_2_2_78_1
  doi: 10.1145/2635868.2635895
– ident: e_1_2_2_76_1
– ident: e_1_2_2_42_1
  doi: 10.1145/2034773.2034812
– ident: e_1_2_2_66_1
  doi: 10.1145/1869459.1869489
– ident: e_1_2_2_35_1
  doi: 10.1145/258948.258973
– ident: e_1_2_2_4_1
– ident: e_1_2_2_9_1
  doi: 10.1145/581339.581365
– ident: e_1_2_2_28_1
– volume-title: Summer School on Advanced Functional Programming
  year: 2002
  ident: e_1_2_2_45_1
– ident: e_1_2_2_11_1
– volume: 109
  volume-title: International Proceedings in Informatics (LIPIcs))
  year: 2018
  ident: e_1_2_2_59_1
– ident: e_1_2_2_39_1
  doi: 10.1145/857076.857078
– ident: e_1_2_2_54_1
  doi: 10.1093/comjnl/bxh120
– ident: e_1_2_2_3_1
– ident: e_1_2_2_10_1
  doi: 10.1007/978-3-540-45070-2_5
– ident: e_1_2_2_24_1
  doi: 10.1109/IPDPSW.2016.138
– ident: e_1_2_2_55_1
  doi: 10.1145/1900160.1900173
– ident: e_1_2_2_52_1
  doi: 10.1145/2611286.2611290
– ident: e_1_2_2_68_1
  doi: 10.1145/2661136.2661146
– ident: e_1_2_2_62_1
  doi: 10.1145/1040305.1040324
– ident: e_1_2_2_79_1
  doi: 10.1145/2577080.2577083
– ident: e_1_2_2_84_1
  doi: 10.1145/2951913.2951916
– ident: e_1_2_2_6_1
– ident: e_1_2_2_69_1
– volume-title: Opa: Language support for a sane, safe and secure web. In OWASP AppSec Research .
  year: 2010
  ident: e_1_2_2_74_1
– ident: e_1_2_2_73_1
  doi: 10.1145/3064899.3064901
– ident: e_1_2_2_71_1
– ident: e_1_2_2_49_1
– ident: e_1_2_2_67_1
  doi: 10.1145/3110246
– ident: e_1_2_2_46_1
  doi: 10.1145/3009837.3009880
– ident: e_1_2_2_7_1
– ident: e_1_2_2_82_1
– ident: e_1_2_2_1_1
– ident: e_1_2_2_33_1
  doi: 10.1145/2660193.2660240
– ident: e_1_2_2_50_1
  doi: 10.1007/978-3-642-39038-8_29
– ident: e_1_2_2_20_1
  doi: 10.1007/978-3-642-13953-6_3
– ident: e_1_2_2_17_1
  doi: 10.1145/2489837.2489840
– volume-title: TGC ’05
  ident: e_1_2_2_58_1
– ident: e_1_2_2_32_1
  doi: 10.1145/3276477
– ident: e_1_2_2_34_1
  doi: 10.1145/1639950.1640058
– ident: e_1_2_2_30_1
  doi: 10.1145/2716320
– ident: e_1_2_2_13_1
  doi: 10.1145/3180155.3180156
– ident: e_1_2_2_48_1
– ident: e_1_2_2_81_1
  doi: 10.1145/2884781.2884815
– ident: e_1_2_2_64_1
  doi: 10.1145/581690.581695
– ident: e_1_2_2_83_1
  doi: 10.1145/1176617.1176756
– ident: e_1_2_2_87_1
– ident: e_1_2_2_65_1
  doi: 10.1145/3158130
– volume-title: Active Expressions: Basic Building Blocks for Reactive Programming. CoRR
  year: 2017
  ident: e_1_2_2_75_1
– ident: e_1_2_2_61_1
  doi: 10.1145/3001929.3001930
– ident: e_1_2_2_41_1
  doi: 10.1145/1244381.1244403
– ident: e_1_2_2_72_1
– volume-title: TGC ’07
  ident: e_1_2_2_60_1
– ident: e_1_2_2_70_1
– ident: e_1_2_2_88_1
  doi: 10.1006/inco.1994.1093
– ident: e_1_2_2_23_1
  doi: 10.1145/1345206.1345211
– ident: e_1_2_2_12_1
  doi: 10.1145/1159876.1159889
– ident: e_1_2_2_40_1
  doi: 10.1145/3055378.3055385
– ident: e_1_2_2_8_1
– ident: e_1_2_2_53_1
  doi: 10.1109/TSE.2018.2833109
– ident: e_1_2_2_57_1
  doi: 10.1007/978-3-662-44202-9_13
– ident: e_1_2_2_86_1
  doi: 10.1145/195473.195481
– ident: e_1_2_2_5_1
– ident: e_1_2_2_43_1
  doi: 10.1109/5.97300
– ident: e_1_2_2_25_1
  doi: 10.1145/2676726.2677004
– ident: e_1_2_2_2_1
– ident: e_1_2_2_89_1
– ident: e_1_2_2_18_1
  doi: 10.1145/3141858.3141861
– volume-title: ECOOP ’15
  ident: e_1_2_2_16_1
– ident: e_1_2_2_63_1
  doi: 10.1145/1236360.1236422
– ident: e_1_2_2_77_1
  doi: 10.1145/2661136.2661140
SSID ssj0001934839
Score 2.3170986
Snippet Distributed applications are traditionally developed as separate modules, often in different languages, which react to events, like user input, and in turn...
SourceID crossref
SourceType Enrichment Source
Index Database
StartPage 1
Title Distributed system development with ScalaLoci
Volume 2
hasFullText 1
inHoldings 1
isFullTextHit
isPrint
journalDatabaseRights – providerCode: PRVHPJ
  databaseName: ROAD: Directory of Open Access Scholarly Resources
  customDbUrl:
  eissn: 2475-1421
  dateEnd: 99991231
  omitProxy: false
  ssIdentifier: ssj0001934839
  issn: 2475-1421
  databaseCode: M~E
  dateStart: 20170101
  isFulltext: true
  titleUrlDefault: https://road.issn.org
  providerName: ISSN International Centre
link http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwtV1Lb9QwELZK4cCF8hSFgnJA3ALxK7GP2_KSutuu1AK9rWzHllaUbLXbop747R3HjjELEuXQixVZtpXkG4_H80TolSKcWlzpUjLY5ExzXQqndckds0QIbkXv5ftl3BwciJMTOY0W_FVfTqDpOnF5Kc9uFGroA7B96Ox_wJ0WhQ54BtChBdihvRbw73wqXF_FCkTJkKd5iIzq7f694vUIkFFjwCWXTafpLOvdO0Z7E29JiA5c371KYVBuJjn8q52vQvKEgPxUrYxKPhv73gq_Ww_1lSfz5bdF0uioU5DhLdyte3eCjxfzdpFrILCIoXiJURHW8BKzEOn8xv6lL3JakhHU4eH0aDzKWCfOzuBgqvmTuzOfCIOSpmahqtLv-bPXzrXkbRhir_ksTryFbpOGS88CJz8zhZykTPSV59K7hyBrP_dtnJtJL5kYcnwf3Yv3h2IUcH-ANmz3EG0NtTmKyKofoTIjgyKQQZGRQeHJoEhk8Bh9_vD-eO9TGUtjlIZUkpaYYM04bglzzEmmaO2cg81luXbKYOxYLRxtrWlrbCTV3GKsSaVxZZilltEnaLNbdPYpKiolOVzEVSNJxazx8aPUGFipam1dUbGNXg-fPDMxb7wvX3I6W_uv26hIA89CqpT1Ic_-PeQ5uvuLxnbQ5vnywr5Ad8yP8_lq-bKH7ArmMFrG
linkProvider ISSN International Centre
openUrl ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.atitle=Distributed+system+development+with+ScalaLoci&rft.jtitle=Proceedings+of+ACM+on+programming+languages&rft.au=Weisenburger%2C+Pascal&rft.au=K%C3%B6hler%2C+Mirko&rft.au=Salvaneschi%2C+Guido&rft.date=2018-11-01&rft.issn=2475-1421&rft.eissn=2475-1421&rft.volume=2&rft.issue=OOPSLA&rft.spage=1&rft.epage=30&rft_id=info:doi/10.1145%2F3276499&rft.externalDBID=n%2Fa&rft.externalDocID=10_1145_3276499
thumbnail_l http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/lc.gif&issn=2475-1421&client=summon
thumbnail_m http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/mc.gif&issn=2475-1421&client=summon
thumbnail_s http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/sc.gif&issn=2475-1421&client=summon