Free system design template

Incident post-mortem diagram

The system as it was, the failing part in a red zone, a timeline in notes and a criterion that proves the fix.

It opens with this template loaded and runs in your browser. You don't need an account to use it; a free account saves your work and exports it.

The job it does

After an incident: draw what broke and why for the post-mortem, then show the change survives the same failure. It comes with its own checks, so after you change it you can see at a glance that it still does the job.

What's inside

This is the template exactly as the System Design Studio opens it, read-only. Open it to run it, change it and export it.

  • 6 parts
  • Traffic 900 req/s, peak 1,500 req/s
  • 90% reads, 10% writes
The brief: Post-mortem: the cache went down

After an incident: draw what broke and why for the post-mortem, then prove the fix survives the same failure.

On the night of the incident the single cache node crashed, every read went to the primary database, and checkout timed out for 14 minutes. The fix on the board: two cache nodes and a read replica. The criterion "survives the cache failing" replays the failure on every run; the red frame and the timeline notes are what the post-mortem shows.

Replace the parts, the frame and the timeline with your own incident.

Done when
  • p95 latency ≤ 300 ms
  • Error rate ≤ 1%
  • Survives a missing part failing at t=60 s (errors ≤ 2%)
The design on the board

Parts

  • Web client: Web client
  • Load balancer: Load balancer
  • App server: App server, 4 replicas, Medium (2 vCPU, 4 GB)
  • Cache: Cache, 2 replicas, Medium (2 vCPU, 4 GB)
  • DB read replica: DB read replica, Medium (2 vCPU, 4 GB)
  • DB primary: DB primary, 2 replicas, Medium (2 vCPU, 4 GB)

Arrows

  • Web client → Load balancer
  • Load balancer → App server
  • App server → Cache
  • App server → DB read replica
  • App server → DB primary
Notes on the board
  • Timeline (UTC); 21:02 cache node crashes; 21:03 DB CPU 100%, p95 4 s; 21:09 on-call paged; 21:16 cache restarted, back to normal
  • Root cause: one cache node, no replica; the DB could not take every read.; Action items: 2 cache nodes ✓, read replica ✓, alert on cache hit rate.
Marked zones
  • Failed: cache (single node)

The lesson behind it

Learn why it works, with a podcast and a quiz for each lesson.

  • Architecture review

    Today's design on the board with the questions a review asks as notes, and criteria for the targets you must keep.

  • Capacity plan

    Expected peak traffic, a sized design and Find my limit, with headroom and cost per month as criteria.

All system design templates · Every template