Skip to content
One-time payment8h 15m · 42 lessons

System Design for Web Devs

The route

  1. The vocabulary, and the numbers

    Latency, throughput and percentiles — enough to reason out loud in a room.

    You board here
    85 min
  2. Caching, and what it costs you

    The layers, invalidation, and being deliberate about the staleness you accept.

    85 min
  3. Queues and doing work later

    Async boundaries, retries, dead letters, and exactly-once as a comforting fiction.

    85 min
  4. Databases and the unavoidable trade-off

    Indexes, normalisation, replication, and what consistency costs.

    85 min
  5. Six systems, end to end

    A feed, a scheduler, a file service, a rate limiter, a search box and a checkout.

    85 min
  6. Defending a design in review

    The diagram, the numbers, and naming the failure mode before they do.

    70 min

A look at the teaching

Stop 2 · Caching, and what it costs youSample excerpt

A cache is not a speed trick. It is a decision about how wrong you are willing to be.

Request → CDN (60s) → app cache (5m) → database
              ↑              ↑
         public data    per-user data

# The question is never "should I cache this", but:
#   how wrong can this be, for how long, before
#   somebody is actually harmed by it?
#
# Course catalogue   minutes are fine
# Someone's library  seconds, and bust it on purchase
# A payment total    never — read it from the source

Caching is easy and invalidation is the design. Write down the staleness you are accepting for each kind of data, because you are accepting one whether you write it down or not.

Who is driving

PH
Péter Halász
Staff engineer

Péter teaches the way a good colleague explains things at a whiteboard — no jargon for its own sake, and nothing hidden behind “as you can see”.

Placeholder profile