advanced 2 min answer

A platform must choose how much of the underlying infrastructure to abstract. What decides the level?

abstractionescape-hatchleaky-abstractionsplatformexpediatrade-off
Show the full answer Hide the answer

What decides it

How much variation the consuming teams legitimately need, and what happens when the abstraction does not fit.

Too little abstraction and every team makes the same infrastructure decisions repeatedly, badly and inconsistently — which is the situation the platform exists to fix.

Too much and a team with a legitimate need has no way to express it, so they leave the platform entirely rather than partially. The organisation then has an ungoverned workload with none of the controls the platform provides, which is a far worse outcome than a governed exception.

The workable shape

An opinionated default with an escape hatch. The common path is simple and declarative; a team with a genuine need can drop to the underlying primitives without leaving the platform's identity, observability, policy and cost attribution.

That last clause is what makes the escape hatch safe: dropping down should forfeit convenience, not governance.

The property that determines whether the abstraction holds

What happens when something fails. An abstraction that hides complexity successfully until an incident, at which point the team must understand both their system and the platform's internals, has made debugging harder than no abstraction at all.

Abstractions must fail legibly. Errors that name the underlying cause, observability that shows what the platform did on the team's behalf, and documentation of the mechanism — not just the interface.

The recurring-exception signal

A variation requested repeatedly is not an exception; it is a missing capability. The answer is a second sanctioned pattern with its own paved road, because two supported patterns are far cheaper than one abstraction and twenty exceptions — each exception carrying its own review, operational unfamiliarity and risk.

The test

Can a team using the platform diagnose their own incident? If the answer requires the platform team every time, the abstraction level is wrong — and the platform has become a dependency rather than a capability.