Recap of the Course
Let's look at what we have learned so far in this course.
We'll cover the following...
This course has helped you understand:
- How distributed systems can be useful
- What challenges you may face when building distributed systems
- How to overcome these challenges
Building or using a distributed system is a serious undertaking that one should take only when necessary.
We will recap some key learnings from this course and will also highlight topics that we did not cover. In this way, those willing to dive deeper into some areas will have some starting points to do so.
Recap
First of all, we introduced some of the basic areas where distributed systems can help: performance, scalability, and availability.
We analyzed basic mechanisms that can help in these areas throughout the course, such as partitioning and replication. It also became evident that these mechanisms introduce tension between the characteristics mentioned above and other properties, such as consistency. This tension is formalized by basic theorems, such as the CAP theorem and the FLP result.
This tension manifests in various ways. For example, the decision on whether replication operates synchronously or asynchronously can be a trade-off between performance and availability or durability.
We explained the difference between liveness and safety properties and provided an overview of the basic consistency models that help formalise the behaviour of a distributed system and facilitate reasoning about its interaction ...