1.2. System Models and Failure Types
You cannot reason about correctness without first fixing your assumptions about time and failure. A system model is that contract: it defines whether messages arrive within a bound, how nodes are allowed to fail, and whether any participant may lie. Pick the model too optimistic and your protocol breaks in production; pick it too pessimistic and you pay for defenses you never needed. This chapter walks the spectrum from synchronous to asynchronous networks and from crash-stop to Byzantine faults, so every algorithm later in the handbook can state exactly which model it assumes.
Topics Covered
Section titled “Topics Covered”- 1.2.1. Network Models: Synchronous, Asynchronous, and Partially Synchronous: Contrasts synchronous, asynchronous, and partially synchronous timing assumptions and what each permits a protocol to guarantee.
- 1.2.2. Failure Models: Crash-Stop, Crash-Recovery, Omission: Defines the crash-stop, crash-recovery, and omission fault models that determine which failures a system must tolerate.
- 1.2.3. Byzantine Faults: Malicious or Corrupted Actors: Covers the hardest failure class: nodes that behave arbitrarily or maliciously, including corrupted and lying actors.
- 1.2.4. Deterministic vs. Probabilistic Failure Models: Compares failure models that assume worst-case behavior against those that reason about failures as probabilities.
- 1.2.5. Failure Propagation: Cascading Failure Analysis: Analyzes how a single fault propagates through dependencies via positive feedback loops into a system-wide collapse.