Nothing is built and nothing is billing. Draw what this
workload needs, then start taking traffic.
๐ง THE GURU SEESโ
ARCHITECTURE
SPEND
A NEW SERVICE
WHAT IT HAS TO DO
WHAT IT HAS TO HOLD โ hover each
OR TAKE A DIFFERENT BRIEF
You start with an empty board. Draw the system this workload needs โ the
smallest one that can serve it โ and press Go Live.
Then traffic starts arriving, and it flows left to right through whatever you
built: served requests earn money and bring more users, and more users break what
worked yesterday.
A finished design is five to seven boxes. Only the ones this workload could
use are on the board, and you will not need all of those. Everything you build
bills from the moment it exists, so building it early and building it late are
both mistakes โ just different ones.
Every box shows how full it is, because latency is service time รท (1 โ utilization) โ
systems do not slow down gradually, they fall off a cliff. Hover any box to
interrogate it: traffic, latency, errors, saturation and run-rate. How much of
that answer you get depends on how much telemetry you have bought.
Everything you own bills you every second in two parts: a fixed cost the
moment it exists โ the team who knows it, the dashboards, the 3am pages โ plus a
small amount per node. Your first node of anything is expensive; your tenth is
cheap. Anything not carrying its weight can be scaled back down with โ.
Stuck? The ๐ง Guru diagnoses the board live and names
the next move. Management will also have opinions; ๐ฃ mutes them.
When the run ends you get an architecture review โ the
one you would get at work, on what you built, when you built it, and what it cost.
Those seven lines are also, not by accident, the seven things an interviewer is
listening for. Space pauses.
It moves at the speed of a system that is growing, not at the speed of a game.
Use 2ร and 4ร when nothing is happening, and โธ when it is.
CHEATSHEET โ THE COMPONENTS EACH SYSTEM EXPECTS
Every system starts the same two boxes:
somewhere to run code and somewhere to keep data. What separates the briefs is the
rest. Hover a component for why that workload wants it.