Coordination Models and Languages

We present an encoding of (bound) CSP processes with replication into Petri nets with labelled transitions. Through the encoding, the firing semantics of Petri nets models the standard operational semantics of CSP processes, which is both preserved and reflected. This correspondence allows for describing by net semantics the standard CSP observational equivalences. Since the encoding is modular with respect to process syntax, the paper puts on a firm ground the technology transfer between the two formalisms, e.g. recasting into the CSP framework wellestablished results like decidability of coverability for nets. This work complements previous results concerning the encoding of asynchronous interactions, thus witnessing the expressiveness of (open) labelled nets in modelling process calculi with alternative communication patterns.


Foreword
The 16th International Federated Conference on Distributed Computing Techniques (DisCoTec 2021) took place during June 14-18, 2021. It was organised by the Department of Computer Science at the University of Malta, but was held online due to the abnormal circumstances worldwide affecting physical travel. The DisCoTec series is one of the major events sponsored by the International Federation for Information Processing (IFIP), the European Association for Programming Languages and Systems (EAPLS) and the Microservices Community. It comprises three conferences: -COORDINATION, the IFIP WG 6.1 23rd International Conference on Coordination Models and Languages; -DAIS, the IFIP WG 6.1 21st International Conference on Distributed Applications and Interoperable Systems; -FORTE, the IFIP WG 6.1 41st International Conference on Formal Techniques for Distributed Objects, Components, and Systems.
Together, these conferences cover a broad spectrum of distributed computing subjects, ranging from theoretical foundations and formal description techniques to systems research issues. As is customary, the event also included several plenary sessions in addition to the individual sessions of each conference, which gathered attendants from the three conferences. These included joint invited speaker sessions and a joint session for the best papers from the three conferences. Associated with the federated event, four satellite events took place: -DisCoTec Tool, a tutorial session promoting mature tools in the field of distributed computing; -ICE, the 14th International Workshop on Interaction and Concurrency Experience; -FOCODILE, the 2nd International Workshop on Foundations of Consensus and Distributed Ledgers; -REMV, the 1st Robotics, Electronics, and Machine Vision Workshop.
I would like to thank the Program Committee chairs of the different events for their help and cooperation during the preparation of the conference, and the Steering Committee and Advisory Boards of DisCoTec and its conferences for their guidance and support. The organization of DisCoTec 2021 was only possible thanks to the dedicated work of the Organizing Committee, including Caroline Caruana and Jasmine Xuereb (publicity chairs), Duncan Paul Attard and Christian Bartolo Burlo (workshop chairs), Lucienne Bugeja (logistics and finances), and all the students and colleagues who volunteered their time to help. I would also like to thank the invited speakers for their excellent talks. Finally, I would like to thank IFIP WG 6.1, EAPLS and the Microservices Community for sponsoring this event, Springer's Lecture Notes in Computer Science team for their support and sponsorship, EasyChair for providing the reviewing framework, and the University of Malta for providing the support and infrastructure to host the event.

June 2021
Adrian Francalanza The COORDINATION conference provides a well-established forum for the growing community of researchers interested in coordination models and languages, architectures, verification, and implementation techniques necessary to cope with the complexity induced by the demands of today's software development. For the third year in a row, COORDINATION has called for tool papers describing experience reports, technological artefacts, and innovative prototypes, as well as educational tools in the scope of the research topics of the conference. Tool papers were selected according to the combination of an extended abstract and a short video demonstration, after which full papers were produced to be included in these proceedings following a light-weight review. In addition, seeking to further reinforce the practical applicability aspects of the COORDINATION community research, we have explicitly included among the topics of interest the industry-led efforts in coordination and industrial case studies.
The Program Committee of COORDINATION 2021 comprised 32 researchers from 14 countries. We received 16 full paper submissions, 7 short paper submissions, and 8 tool paper submissions. Each paper was evaluated by three reviewers and this process was supplemented by an in-depth discussion phase during which the merits of all the papers were considered. The contributions published in this volume were selected according to their quality, originality, clarity, and relevance. The final program comprises 8 full papers, 2 short papers, and 7 tool papers. The program also included an invited tutorial and an invited talk. The invited talk was given by Mira Mezini from TU Darmstadt, Germany. A short abstract of this talk is included in this volume under the title "Let it Flow: Reactive Computations for Consistent-by-Design Distributed Applications".
We are grateful to all authors who have submitted their work, to the members of the Program Committee and their sub-reviewers for their help in evaluating the papers, and to all the participants for their interest in the conference. We would particularly like to express our gratitude to Giorgio Audrito and Silvia Lizeth Tapia Tarifa, the chairs of the Tool Track; to Stephanie Balzer and Anastasia Mavridou, the organizers of the special topic on digital contracts; to Maurice ter Beek and Hugo Torres Vieira, the organizers of the special topic on configurable systems; and to Ivan Lanese and Larisa Safina, the organizers of the special topic on microservices. Their strong involvement was a key enabling factor for the preparation of the conference. Furthermore, we wish to thank the Steering Committee of COORDINATION and the Steering Board of DisCoTec for their support.
For the second year in a row, DisCoTecthe federated conference whereof COORDINATION is parttook place during the COVID-19 pandemic with many countries having imposed travel restrictions and some of the participants being in lockdown. In the name of all COORDINATION 2021 participants, we thank the Organizing Committee chaired by Adrian Francalanza for allowing the conference to proceed smoothly despite the inherent difficulties of holding it online. Personal thanks go to Duncan Paul Attard, Christian Bartolo Burlo, Caroline Caruana, and Jasmine Xuereb for their help with the conference publicity and running the website.
Finally, we would like to thank the International Federation for Information Processing (IFIP) WG 6.1 for the financial support, Springer for their sponsorship and Anna Kramer, personally, for the support during the production phase of the proceedings, EasyChair for the paper collection, reviewing, and proceedings preparation environment, the University of Malta for providing the infrastructure, and the microservices community and the European Association for Programming Languages and Systems (EAPLS) for the additional publicity they provided.

Mira Mezini
Technische Universität Darmstadt mezini@cs.tu-darmstadt.de Abstract. Ubiquitous connectivity of millions of powerful (mobile) devices to each other and to web and cloud computing platforms via programmable networks has fostered globally distributed computing systemsthe information power grids of the 21st centuryand the development of different kinds of massively distributed applications such as social networking apps (e.g., instant messengers, multiplayer games, etc.), collaborative workflows (e.g., Google Docs, Figma, Trello, etc.), real-time businesses (e.g., collaborative condition monitoring, real-time cross-organizational workflows, etc.), decentralized data ecosystems (e.g., for processing data owned by different stakeholders), etc.
Today, distributed applications often rely on centralized solutions for consistency management. However, centralized management is not a good fit for massively distributed applications regarding offline availability, low latency, or user-controlled data privacy. Decentralized architectures are a better match, but in this setting applications developers must consider partial failures and need to trade-off between availability and strong consistency, ideally employing different consistency levels for different application parts. While there are storage systems that support hybrid consistency, the difficult and error-prone decision about selecting the right consistency levels is left to application developers.
In this talk, I argue for language-based solutions to automate consistency decisions. With such solutions, it is the responsibility of the language machinery to reason about consistency levels and to make use of hybrid consistency as needed by the application semantics. As a result, such languages offer developers well-defined and formally-proven consistency guarantees "out-of-the-box". I will briefly overview some language-based solutions and will elaborate more on the effectiveness of reactive programming in enabling automated concurrency control and fault-tolerance with clear consistency guarantees. I will present the ideas in the context of REScala (rescala-lang.com) -a library-based extension to Scala -that we have designed and implemented in my lab. In REScala, applications are modeled as compositions of reactive abstractions, which denote time-changing values resulting from computations with reactive application semantics (i.e., computations get executed whenever their inputs change). We have reinterpreted and extended this programming model, thereby adopting multi-version consistency control, conflict-free replicated data types, and invariant-based reasoning to enable language-integrated handling of consistency in concurrent and distributed settings with well-defined guarantees.