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 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.
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.