Get to know the concept of systems models and understand the implications of unreliable nodes for distributed systems. Get to know the thought experiment called Byzantine Generals Problem and learn to apply it to real world scenarios.
Examples
Exercises
Context
A system model defines the assumptions we make when working with a distributed system. Based on the assumptions, we need to adapt our implementation.
Based on the system model, we can answer questions like:
In the real world, nodes are unreliable. Power cables might get pulled. Hardware might be upgraded. Nodes might be reconfigured. CPU load might be high. It might be too hot to provide sufficient cooling.
Extreme heat is knocking out data centers
The Byzantine Generals Problem is a thought experiment to illustrate the challenges of coordinating an action with unreliable nodes. It was developed by Leslie Lamport in 1982 (lamport82) and provides a similar setting to the Two Generals Problem.
The thought experiment is named after the Byzantine Empire, which was known for its complex and intricate bureaucracy and communication protocols. This provides an apt metaphor for the challenges faced in distributed computing systems. The capital of the empire was Constantinople, which is modern day Istanbul.
In the experiement, there are three or more generals and armies. In our case we will use three armies $A$, $B$ and $C$. In contrast to the Two Generals Problem, we assume that all messages are delivered reliably. As in the Two Generals Problem, the task is to coordinate a joined attack to conquer the city.