SWE System Design
Core distributed-systems ideas for software engineers
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.
- 01A Method for Designing Systems
- 02Scalable System Design Patterns
- 03Different Types of Data Storage
- 04Caching, In Depth
- 05Queues and Messaging, In Depth
- 06Event-Driven Architecture
- 07Sharding and Partitioning, In Depth
- 08Replication and Consensus, In Depth
- 09Managing Shared State
- 10CAP Theorem
- 11The OSI Model (and why TCP/IP won)
- 12HTTP/1.1 vs HTTP/2 vs HTTP/3
- 13Content Delivery Networks (CDN)
- 14How SSH Really Works
- 15gRPC
- 16GraphQL
- 17The API Gateway Pattern
- 18Data-Plane Proxies: Envoy & Kong
- 19WAF & Edge Security
- 20Security in System Design
- 21LLM Gateways
- 22Agentic System Architecture
- 23Agentic Patterns & Reliability
- 24Distributed System Patterns I: Resilience
- 25Distributed System Patterns II: Data & Coordination
- 26Design Principles: KISS, SOLID, CAP, BASE
- 27ACID Properties in Databases
- 28Apache Airflow (Workflow Orchestration)
- 29Snowflake (Cloud Data Warehouse)
- 30The Data Lakehouse
- 31Concurrency vs Parallelism
- 32DevOps vs SRE vs Platform Engineering
- 33Data Pipelines
- 34Customer-Managed Data Stores (Bring-Your-Own-Database)
- 35The Bring-Your-Own-Database Debate
- 36Self-Service Cloud Infrastructure: From Ticket Queues to Claims
- 37Production Multimodal RAG: The Platform Around the Model
- 38JSON vs JSONB in Production
- 39Langfuse vs Grafana: Observe the AI and the System
- 40Tenant Isolation in a Shared Database