Distributed system development with ScalaLoci

Pascal Weisenburger,Mirko Köhler,Guido Salvaneschi
DOI: https://doi.org/10.1145/3276499
2018-10-24
Proceedings of the ACM on Programming Languages
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.
What problem does this paper attempt to address?