Options
2022
Conference Paper
Title
Mastering Eventual Consistency
Abstract
The quality requirements of modern systems-such as data-intensive systems-call for the design of distributed systems, facilitation of asynchronous processing, and, correspondingly, eventual consistency. In consequence, consistency of application data is no longer achieved with serializability - A technique commonly applied in relational database management systems. Rather, developers need to handle concurrency- A nd consistency-related design challenges in the application layer and the domain layer, which previously were in the responsibility of the infrastructure layer. However, even though concurrency control is already challenging in monolithic systems, the problem is even more demanding in distributed systems. Alas, only little systematic engineering guidance is provided by the software architecture community regarding this issue, and practitioners commonly use a trial-and-error approach. In this tutorial, we will present our consolidated lessons learned from three case studies with industry customers. We will also share novel design guidelines that transfer the latest research results from related research communities into practicable design patterns and best practices. Our design guidelines are based on the foundations of Domain-Driven Design. Participants will learn how to use them in practice in order to design safe eventually consistent systems.