New course · System Design Concepts

How the apps you use every day stay fast and stay up

When engineers say “we need a cache” or “the database has to be sharded,” this course is for the people in the room who want to follow along. No coding background needed. Just clear pictures, the real words, and why they matter.

// How each lesson will work

Built for people who don’t write code

// Syllabus

Twenty-five ideas, in five steps

Each step builds on the one before it. The first step is free for everyone. The other four steps make up the $29 full course, which is opening soon. The five Foundations lessons are ready to read now. The rest are still being written, so their rows don’t open yet.

  1. Tier 1Foundations5 lessons · Free
  2. Tier 2Speed & staying up5 lessons · Full course
  3. Tier 3Data6 lessons · Full course
  4. Tier 4Services talking6 lessons · Full course
  5. Tier 5Safety3 lessons · Full course

// Tier 1

Foundations

The basic words engineers use when they talk about speed and size.

  • Latency

    How long one request takes to come back: the wait you feel after you tap a button.

    Free
  • Throughput

    How much work a system finishes each second, and why that is not the same as speed.

    Free
  • Scalability

    What it takes for a system to keep up when ten times more people show up.

    Free
  • DNS

    How a name like mirquadri.com turns into the address of a real computer.

    Free
  • Load balancing

    Spreading visitors across several servers so no single one gets crushed.

    Free

// Tier 2

Speed & staying up

How big sites stay quick, and keep working when something breaks.

  • Caching

    Keeping a copy of an answer close by so you do not have to work it out twice.

    Full courseOpening soon
  • CDNs

    Serving files from a computer near each visitor instead of one far-away origin.

    Full courseOpening soon
  • High availability

    Designing a service so it stays up even when some of its parts go down.

    Full courseOpening soon
  • Fault tolerance

    Expecting things to break, so one failure does not take everything else with it.

    Full courseOpening soon
  • Replication

    Keeping copies of the same data on several machines, and what those copies cost.

    Full courseOpening soon

// Tier 3

Data

Where information lives, and the trade-offs in keeping it safe and correct.

  • SQL vs NoSQL

    Tables with strict rules versus flexible documents, and how to choose between them.

    Full courseOpening soon
  • ACID transactions

    The four promises that stop a bank transfer from losing money halfway through.

    Full courseOpening soon
  • Indexing

    A database's version of the index at the back of a book: find things without reading every page.

    Full courseOpening soon
  • Sharding

    Splitting one huge database into smaller pieces that live on different machines.

    Full courseOpening soon
  • Consistency models

    Whether everyone sees the newest data right away or a little later, and why it matters.

    Full courseOpening soon
  • CAP theorem

    When the network splits, you choose between always answering and always being right.

    Full courseOpening soon

// Tier 4

Services talking

How the separate parts of a large app pass messages to each other.

  • API design

    How to shape the doorway that other programs use to talk to yours.

    Full courseOpening soon
  • REST

    The most common style for web APIs: things with addresses, and a few plain verbs.

    Full courseOpening soon
  • Microservices

    Breaking one big app into small services, and what you gain and give up by doing it.

    Full courseOpening soon
  • API gateway

    One front door that checks and routes every request before it reaches the services behind it.

    Full courseOpening soon
  • Message queues

    Letting one part of a system leave work for another part to pick up later.

    Full courseOpening soon
  • Pub/sub

    Announcing something once so every part of the system that cares hears about it.

    Full courseOpening soon

// Tier 5

Safety

Knowing who is knocking, what they may do, and how often they may do it.

  • Authentication

    Proving who someone is: passwords, sign-in links and sessions.

    Full courseOpening soon
  • Authorization

    Deciding what a signed-in person is allowed to see and do.

    Full courseOpening soon
  • Rate limiting

    Capping how often someone can knock, so one visitor cannot flood the system.

    Full courseOpening soon

Where this course stands

The five Foundations lessons are published and free to read. The other lessons are being written now, and the syllabus may still change as the writing goes.

The first tier is free for everyone, and you don’t need an account to read it. The full course is not open yet. When it opens, this page will explain how to join.