sdlc.dev

Design walkthroughs

Patterns, companies and the systems we build, one narrated diagram at a time.

Resilience 101

Keep one failing dependency from taking everything down.

0 of 4 watched
  1. 1TimeoutBeginner · 6:33
  2. 2Retry with backoff and jitterBeginner · 6:35
  3. 3Circuit breakerIntermediate · 5:11
  4. 4BulkheadIntermediate · 6:19

Consistency across services

Change data in more than one place without losing or doubling anything.

0 of 5 watched
  1. 1Idempotency keysBeginner · 6:42
  2. 2Transactional outboxIntermediate · 7:09
  3. 3SagaAdvanced · 7:37
  4. 4Event sourcingAdvanced · 6:59
  5. 5CQRSIntermediate · 6:23

Scaling out

Spread load across many machines and keep them from drowning.

0 of 5 watched
  1. 1ShardingIntermediate · 7:00
  2. 2Consistent hashingIntermediate · 6:23
  3. 3Rate limitingBeginner · 7:00
  4. 4BackpressureIntermediate · 6:54
  5. 5Leader electionAdvanced · 6:52

Event-driven systems

Let services react to what happened, and make long processes finish.

0 of 5 watched
  1. 1Publish/subscribeBeginner · 7:13
  2. 2Event streamingIntermediate · 7:01
  3. 3Transactional outboxIntermediate · 7:09
  4. 4SagaAdvanced · 7:37
  5. 5Durable workflowsAdvanced · 6:49

APIs and the edge

Shape what clients see, and keep the contract honest as both sides change.

0 of 6 watched
  1. 1API gatewayBeginner · 6:23
  2. 2Backend for frontendIntermediate · 6:37
  3. 3Server-driven UIAdvanced · 6:22
  4. 4Rate limitingBeginner · 7:00
  5. 5Cursor paginationBeginner · 6:25
  6. 6Contract testingIntermediate · 7:11

Fast reads

Serve the same answer cheaply, close to the reader, without serving it wrong.

0 of 3 watched
  1. 1Cache-asideBeginner · 7:21
  2. 2CDN and edge cachingBeginner · 6:57
  3. 3CQRSIntermediate · 6:23

Evolving a system safely

Replace and change running systems without a big-bang rewrite.

0 of 4 watched
  1. 1Strangler figIntermediate · 7:12
  2. 2Anti-corruption layerIntermediate · 7:01
  3. 3Feature flagsBeginner · 6:44
  4. 4Contract testingIntermediate · 7:11

Staying up at scale

Contain failures so most users never notice them.

0 of 4 watched
  1. 1Graceful degradationIntermediate · 6:16
  2. 2BulkheadIntermediate · 6:19
  3. 3Circuit breakerIntermediate · 5:11
  4. 4Cell-based architectureAdvanced · 7:47