For twenty years,
where your code ran was a shopping decision.
You picked a region
for latency, for price,
and for which country's laws
applied to the data.
You got what you asked for,
because there was always more of it.
That is quietly ending,
and not for any reason
that has to do with software.
A data centre needs a grid connection.
Grid connections are queued now,
in some places for years.
The building goes up faster
than the power to run it arrives.
You will meet this first
as a sentence in a console
saying the capacity you requested
is unavailable in that region,
with a polite suggestion
to try a different one.
Then it becomes ordinary.
Capacity gets reserved in advance.
Quotas stop being a formality.
Prices differ between regions
by more than exchange rates explain,
and eventually differ by hour.
The design consequence arrives
long before any of the politics does.
Your system will be asked to move,
and the only question
is whether it is able to.
Most are not,
for reasons that have nothing to do with code.
An address written into a partner's firewall.
A certificate pinned somewhere nobody remembers.
A nightly job assuming it sits
in the same building as the database.
A dataset too expensive to hold twice.
Your system will also be asked to wait.
Which of your work is genuinely interactive
and which merely feels urgent
is about to become
a real architectural distinction,
because the cheap and available hours
will not be the hours
anybody would have chosen.
So the two properties worth building now
are movable and deferrable.
Movable means no assumption
about which building it runs in
that is not written down as configuration.
Deferrable means you know
which jobs can be an hour late,
and nothing in the design
quietly requires that they are not.
Compute has been something you order.
It is becoming something you are allocated.
The systems that can move,
and the systems that can wait,
are the ones that will get it.
– Serguey Asael Shinder
Top comments (0)