From 100 Users to 10 Million

Work from the brief alone. Write what you would produce — actors, requirements, data, a first slice, your unknowns — before opening anything below it; the exercise stops working if you read the reality first.

The brief you were given

The online store runs on one server and one database with 100 users. Take it, in stages, to 10,000, 100,000 and 10 million users (all illustrative). At each stage, say what the bottleneck is, what evidence shows it, and what single change addresses it. Change the architecture only when a bottleneck appears.

Your attempt

Nothing here is checked. It exists so that the reveal below is a comparison rather than a reading.

The trap — the move that looks like progress and is not

Adding a cache at 100 users "so we are ready". It is cheap to add, it looks like foresight, and it introduces invalidation bugs — a price change that does not show — into a store that has no read load to justify them, so the first production incident is caused by the component added to prevent incidents.

Read this even if you are confident. It is here rather than behind a button because it is the move most people actually make, it produces things that look like a project, and its cost arrives when the first hard requirement has nowhere to go.