CoursesSystem Design Foundations

Components and Flow

Where one service ends and the next begins, which steps the caller waits for and which it does not, what a queue buys and costs, and which store each kind of data belongs in.

Lessons
6
Exercises
34
Minutes
36

Start Where One Service Ends

  1. 1

    Where One Service Ends

    After this lesson you can draw a boundary where the data's owner, the change rate or the load actually differs, and refuse the split that only adds a network call.

    DebugFill blankMultiple choiceTap
    5 exercises
    5 min
  2. 2

    Sync or Async

    After this lesson you can decide, step by step, which work the caller waits for and which it only needs a promise about, and write the response that keeps that promise.

    Code orderMultiple choiceTrace
    5 exercises
    5 min
  3. 3

    What a Queue Buys

    After this lesson you can compute how long a burst takes to drain, say what a queue buys and what it costs, and spot the worker that loses work.

    DebugMultiple choiceShort answerTap
    5 exercises
    6 min
  4. 4

    Which Store for Which Data

    After this lesson you can put each kind of data in the store built for how it is accessed, and say why the wrong store looks fine until it is not.

    DebugFill blankMultiple choiceTap
    5 exercises
    5 min
  5. 5

    Checkpoint: Components and FlowCheckpoint

    Boundaries, sync and async, queues and stores for a system you have not seen before.

    DebugMultiple choiceShort answerTrace
    6 exercises
    6 min
  6. 6

    Boss: The Image PipelineBoss

    One design carried from the ask to the incident: the question, the estimate, the upload contract, where the bytes live, a burst of uploads, the jobs that vanished, the revised worker loop, and the tradeoff you have to defend.

    Code orderMultiple choiceShort answerTapTrace
    8 exercises
    9 min