System design, connected.

Explore complete designs and the decisions behind them.

New here? Start here

One shared library. Topics connect to deep dives and their follow-ups.

Deep dives

9 deep dives
When to add a queue

Derive the async boundary, keep accepted work recoverable, and distinguish waiting space from processing capacity.

Cursor pagination

Continue from a stable indexed position, scope the cursor to the query, and explain what changes between pages can do.

Idempotency and retries

Keep one task distinct from its attempts, save one reply, and handle duplicate work, uncertain outcomes, and late workers safely.

Backpressure and capacity

Separate capacity from throughput, drain a finite burst, and bound waiting when useful capacity cannot keep up.

Choosing a data modelComing soon
Processing slots, threads, and concurrencyComing soon
Indexes and write costComing soon
Transaction boundariesComing soon
Bulk database writesComing soon
A different way into the same ideas2 topics · 4 available · 5 coming soon

Topics connect to deep dives, and follow-up guides connect to the deep dive they extend. Use search to find a deep dive. Drag the background to pan. Drag a card to move it; connections follow. Shift-click boxes or Shift-drag empty space to select multiple boxes, then drag a selected box to move the group. Use Select for touch, Escape or Clear to clear selection, Shift + Enter to toggle a focused box, and Command or Control + A to select visible boxes. Click a topic to collapse its branch, or a resource to expand its preview. Use the plus or minus control on a deep dive to show or hide its children. Scroll to pan, pinch to zoom. Tab to a card and press Enter to open or arrow keys to move. The List view provides all resources without canvas navigation.

Follow the next connection.

New deep dives, straight to your inbox.

Get new free resources as they’re published.

New resources only. Unsubscribe anytime.