SOFTWARE ENGINEERING

SWE System Design

Core distributed-systems ideas for software engineers

CURRICULUM

A visual course on the concepts behind reliable large-scale software systems: availability, consistency, partition tolerance, replication, sharding, caching, queues, consensus, failure modes, and the tradeoffs engineers must choose explicitly.

  1. 01CAP TheoremWhen a distributed system is cut in half by a network partition, it must choose between answering and risking disagreement, or stopping until agreement is safe.12 sections