Abstract models used to reason about distributed systems: physical (hardware), architectural (components and their interactions), fundamental (timing, failures, security).
Key facts
Synchronous vs asynchronous: known vs unknown bounds on execution, message delay, clock drift.