Skip to content
About The Journey How I Can Help Gallery Insights Contact Me
Cover of System Design for Developers by Vishal Rajpurohit.
Architecture Free to read · Open access · 13 of 13 chapters

System Design for Developers

Reasoning about load, state, and failure before you write the code

Almost every scaling problem is a decision made early, cheaply and without evidence, so design is the discipline of forcing load, state and failure into the open and writing down why.

Design is not drawing boxes. It is deciding, in order, what load the system has to absorb, where state lives and what consistency it needs, and how the thing behaves when a dependency is gone, then recording the constraint that forced each answer and the signal that would reverse it. This book works through that order using the decisions that actually cost money later: data model, service boundaries, caching, queues and backpressure, timeouts and idempotency, observability, capacity, and how to migrate a system that cannot stop running.

What it makes operable

  1. 01

    Start from a load model instead of a box diagram

  2. 02

    Choose state, consistency and a data model you can still live with at scale

  3. 03

    Make timeouts, retries, idempotency and backpressure explicit decisions

  4. 04

    Write a decision record that names the constraint and the reversal signal

Contents

13 of 13 published

Every chapter is free to read in the browser, cites its own sources, and stands on its own if you came for one decision rather than the whole argument.

  1. 01 Start From the Load, Not the Diagram Shape, peak and growth of traffic, established before a single box is drawn. 11 min
  2. 02 State Is the Hard Part Why stateless services are easy and the data underneath them is not. 10 min
  3. 03 Consistency You Can Explain to the Business Choosing a guarantee, then describing it in a sentence non-engineers accept. 10 min
  4. 04 Choosing a Data Model You Can Live With Access patterns first; the choice of store is a consequence of them. 11 min
  5. 05 Where to Put the Boundary Between Services Transaction scope, ownership and deploy cadence, not domain diagrams. 10 min
  6. 06 Caching: Correctness First Invalidation, staleness contracts, and what a cache is allowed to serve. 10 min
  7. 07 Queues, Backpressure, and Fair Scheduling What the system does when work arrives faster than it can be finished. 11 min
  8. 08 Timeouts, Retries, Idempotency The three settings that decide whether a partial failure corrupts data. 11 min
  9. 09 Failure Domains and the Blast Radius You Chose How many customers one failure is allowed to reach, decided on purpose. 11 min
  10. 10 Observability as a Design Input Deciding what you will need to see while the design is still cheap to change. 11 min
  11. 11 Capacity, Cost, and the Bill Turning a load model into a number the business can plan against. 10 min
  12. 12 Migrating a Running System Dual writes, backfills, cutovers, and the rollback you keep in reserve. 11 min
  13. 13 Writing the Decision Record The constraint that forced the choice and the signal that would reverse it. 11 min

Evidence · 2 sources

Third-party sources behind the book's premise. Every figure in them belongs to the party that published it and is attributed to them in the text.

In the age of AI

The advantage was never the model. It's knowing what to build with it and having a team that can actually ship it.

That's the part I help with: finding where AI genuinely makes your business faster, deciding what's worth building, and standing behind it once it's live.

Four offices, one very full passport

Every dot on this map is a conversation I still remember.

World map showing ViitorCloud offices in Ahmedabad, Zürich, Washington D.C. and Port Louis, and the countries where Vishal Rajpurohit has spoken and travelled
Germany
Indonesia
Saudi Arabia
Spain
Japan
Denmark
Turkey
Singapore
Ireland
Czechia
France
Thailand
Sweden
Mexico
Qatar
Italy
South Korea
Poland
United Kingdom
Malaysia
Belgium
Canada
UAE
Netherlands
Vietnam
Norway
Oman
Portugal
Australia
Austria
New York, USA
Chicago, USA
Las Vegas, USA
San Francisco, USA
Los Angeles, USA
Ahmedabad, India — headquarters
Zürich, Switzerland
Washington, D.C., United States
Port Louis, Mauritius
Sixty seconds from the road Quick lessons and keynote moments — tap to watch