Pebellslearn by building
RoadmapsMatrixCoursesSandboxSign in

Course details

System Design

Learn how large software systems are put together and kept running. Follow Hop, a small link shortener, as it grows from one server into a replicated, load-balanced service, and learn the rule of thumb behind every step.

Ready to learn6 sections · 22 lessons
Start learning

Course curriculum

Introduction to System Design4 lessons

Meet Hop, a tiny link shortener that grows up across this course. Learn what system design decides, a repeatable way to approach any design question, and the two pairs of words — performance and scalability, latency and throughput — that every design conversation uses.

  1. What Is System Design?12 min
  2. How to Approach a Design12 min
  3. Performance vs Scalability12 min
  4. Latency vs Throughput12 min
Availability vs Consistency4 lessons

Once Hop keeps its data in more than one place, the copies can drift apart. Learn the CAP theorem's forced choice during a network split, then the three promises a system can make about reads after a write: weak, eventual and strong consistency.

  1. The CAP Theorem15 min
  2. Weak Consistency12 min
  3. Eventual Consistency12 min
  4. Strong Consistency15 min
Availability Patterns3 lessons

Remove single points of failure with fail-over and replication, then measure the result the way contracts do: in nines, with simple arithmetic for parts that sit in a chain or side by side.

  1. Fail-Over12 min
  2. Replication15 min
  3. Availability in Numbers15 min
Background Jobs3 lessons

Some work does not belong inside a user's request. Learn to start background jobs from events or from a schedule, and the ways a job's result finds its way back to whoever asked for it.

  1. Event-Driven Jobs12 min
  2. Schedule-Driven Jobs12 min
  3. Returning Results15 min
DNS and Content Delivery Networks3 lessons

Before a request reaches Hop, a name must become an address, and far-away users pay for every kilometre. Learn how DNS resolves and caches names, and how pull and push CDNs keep copies of content near the people who ask for it.

  1. The Domain Name System15 min
  2. Pull CDNs12 min
  3. Push CDNs15 min
Load Balancers5 lessons

Put a front door in front of Hop's servers. Learn how a load balancer differs from a reverse proxy, how it picks a server for each request, what it can see at layer 4 and at layer 7, and why horizontal scaling only works once servers keep no state of their own.

  1. Load Balancer vs Reverse Proxy12 min
  2. Load Balancing Algorithms15 min
  3. Layer 4 Load Balancing12 min
  4. Layer 7 Load Balancing15 min
  5. Horizontal Scaling15 min