A Programming Paradigm for Reliable Applications in a Decentralized Setting

Ragnar Mogk · Technischen Universität Darmstadt · 2021

The use of applications has changed together with the underlying computing platform. The modern computer is no longer a big piece of office equipment that is booted to execute a single task producing a single output. Instead, we have many interconnected devices – smartphones, laptops, routers, Internet of Things gadgets, and even some venerable desktop computers we still use to get that heavy work done. Furthermore, ubiquitous connectivity with the Internet, and thus collaboration with other people and their set of devices has drastically changed how people expect applications to work. For such distributed, interactive, and collaborative applications, we currently lack a declarative fault-tolerant programming paradigm with easy-to-reason high-level guarantees. We want to empower developers from organizations of all sizes to be able to create reliable applications that solve their users needs. Thus, the central question in this thesis is: How to automate fault tolerance for such applications? To answer this question, we present a novel approach to automatic fault tolerance using a high-level programming paradigm. Our goal is to provide future developers with a paradigm that reduces the challenge posed by failures in interactive applications similar to how a garbage collector reduces the challenge of managing memory. To do so, our programming paradigm abstracts from the notion of changes in data, thus removing the need to handle failure cases differently and providing developers a single set of properties to always rely on.

Read the paper · More papers on PaperTik