— Designing a URL shortener: the short code is the easy part — Mapping a short code to a long URL takes one table. The design is everything around it: a redirect path that has to stay fast, click data that outgrows the links, and deciding which failures are allowed to reach the reader.
— The cache stampede hides behind your hit rate — A 99% cache hit rate means the database behind it is sized for 1% of your traffic. Here is what happens the moment that assumption stops holding, and how to see it on a diagram before it happens.
— Retry storms, or the fix that becomes the failure — Retrying is the standard answer to a transient error. When the error is saturation rather than bad luck, the retry adds load at the exact moment the system needs less of it.
— Losing an availability zone — Three zones does not mean you can lose one for free. It means each surviving zone has to absorb half the traffic instead of a third — and the headroom for that is a number you either bought or did not.
— Read replica or cache? — Both take read load off the primary database, and they are not interchangeable. One scales the number of queries you can serve; the other removes the query entirely. Picking wrong is how a design ends up with both.
— Introducing RodGrid — One semantic canvas for designing systems, simulating traffic, and practicing architecture.
— Debug the failing system — Stress presets and diagnosis challenges: how RodGrid lets you break a design on purpose and find out whether you can fix it.
— How the traffic simulator works — RodGrid's simulator is a deterministic capacity model with published assumptions — here is the whole model, including the numbers, and what it deliberately is not.