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
- 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 - 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 - 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 - 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
Checkpoint: Components and FlowCheckpoint
Boundaries, sync and async, queues and stores for a system you have not seen before.
DebugMultiple choiceShort answerTrace - 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