Course Detail
Units:
3.0
Course Components:
Lecture
Description
This course covers the design and implementation of real-world distributed systems. Topics include messaging, messaging failure semantics, remote procedure calls, replication, partitioning, scaling, recovery, fault-tolerance, consistency models, transactions, concurrency control, failure models, consensus protocols, Byzantine fault tolerance, and peer-to-peer systems. Heavy emphasis on systems programming with a focus on highly concurrent code in non-deterministic environments.