Skip to main content

Word of the Week: Abstraction Layers

Every tool you use is a stack of promises — don't worry how it works, just trust what it does. This week: where abstraction layers came from, why they always leak, and what it means for the AI-native tools we're building.

Every tool you've ever used — your car, your CRM, the AI writing your code right now — is a stack of promises: don't worry about how this works, just trust what it does. That's an abstraction layer. This week's word explains where the idea came from, why it always leaks, and what it means for the AI-native tools we're building at Botensten.

The one-sentence version

An abstraction layer is a boundary in a system where implementation detail is deliberately hidden behind a stable interface, so you can depend on what something does without needing to know how.

You drive a car without understanding the crankshaft. You order dinner without knowing the kitchen's supply chain. Every layer of software works the same way — and every layer trades control for velocity.

Where the idea came from

Layering isn't a framework trend. It's fifty years of computer science solving the same problem: systems too complex for one mind to hold at once.

  • 1968 — Dijkstra. The "THE" multiprogramming system was one of the first operating systems explicitly built as a strict hierarchy of layers, each provably correct on its own before the next layer was built on top.
  • 1972 — Parnas. "On the Criteria to Be Used in Decomposing Systems into Modules" argued you should split systems around design decisions likely to change — hide each decision behind an interface that reveals as little as possible. This is the intellectual root of the modern interface contract.
  • 1974 — Liskov. Abstract data types turned abstraction into an engineering discipline: a stack or table can be used through a stable interface while its implementation changes underneath.
  • 1984 — The OSI Model. The ISO's seven-layer network model codified layering as an industry-wide contract. It never became the actual protocol the internet runs on — TCP/IP won that — but it's still the clearest teaching model for "a layer only talks to its neighbor."
  • 2002 — Spolsky. "The Law of Leaky Abstractions" supplied the counterweight every builder needs.

Every abstraction leaks

"All non-trivial abstractions, to some degree, are leaky." — Joel Spolsky, 2002

Spolsky's sharper point: abstractions save us time working, but they don't save us time learning. They speed up the common case — until the day the layer beneath shows through, and you need to understand it to survive.

You might also like

Three real examples: TCP promises reliable delivery over an unreliable network — the promise holds until a cable is physically severed. SQL query planners let two logically identical queries execute at wildly different speeds — the "just describe what you want" abstraction leaks the moment performance matters. C++ string literals are raw char*, never string objects, so you can't write "foo" + "bar" directly — the abstraction fails to hide pointer semantics exactly where you'd expect it not to.

Fred Brooks drew the line even sharper in No Silver Bullet (1986): every system has essential complexity (inherent to the problem) and accidental complexity (friction from your tools). Abstraction fights accidental complexity — it cannot delete essential complexity. It has to live somewhere in the stack. No framework, no AI agent, no ADE is a silver bullet against the actual hard part of the problem.

The ladder, rung by rung

The same pattern repeats at every altitude of computing:

  • Network — OSI's seven layers, wire to application.
  • Operating system — syscalls hide disk layout and interrupts from every program above.
  • Language — CPU → assembly → C → high-level languages, each rung trading control for productivity.
  • Data — storage engine → query planner → ORM → application objects.
  • Infra — bare metal → hypervisor → container → orchestrator.
  • UI — DOM → virtual DOM diffing → declarative components → hooks.
  • Intent — natural language → AI coding agent → generated syntax. This is the newest rung: it collapses "the language you think in" and "the language the machine executes" for the first time since assembly.

The new layer: AI-native development

Agentic IDEs — Cursor, Windsurf, Claude Code, and our own ADE — are the biggest new rung since high-level languages replaced assembly. That means they're subject to the exact same law Spolsky wrote about in 2002.

What makes it a good abstraction: it lets you express intent without leaky implementation details bleeding through — unless you ask to see them. It stays inspectable: you can always drop down a level to the real diff, the real prompt, the real tool call. It fails loud, not silent, when it's unsure.

What makes it a bad one: it silently rewrites files with no diff to inspect. It can't explain its own reasoning or tool calls. It hides the exact thing you need on the day it breaks — no escape hatch back to ground truth.

MCP: the USB-C of agent tooling

Model Context Protocol is the clearest recent example of a brand-new abstraction layer winning industry-wide adoption in real time. Anthropic open-sourced it in November 2024 as one standard protocol instead of custom integrations between every agent and every tool. OpenAI adopted it across its Agents SDK and ChatGPT in March 2025. Google DeepMind confirmed support in Gemini in April 2025. By December 2025, Anthropic donated MCP governance to the Agentic AI Foundation — a neutral body backed by Google, Microsoft, AWS, and OpenAI — moving it from one company's bet to shared infrastructure.

MCP servers grew from roughly 100,000 downloads to over 8 million in five months. That's what it looks like when an abstraction layer is scoped correctly: narrow enough to implement fast, useful enough that nobody wants to hand-roll the layer underneath it again.

Orchestration is the next layer up

If MCP standardized how one agent talks to one tool, the frontier now is standardizing how many agents talk to each other:

  • Orchestrator / worker — one planning agent decomposes a task into disjoint units; specialized workers execute each unit in parallel, often on cheaper models.
  • Contract + critic — a shared spec every worker executes against, judged by a separate critic that defaults to reject on doubt.
  • Blackboard architecture — an emerging alternative where subagents volunteer to respond based on their own capability match, rather than one orchestrator enumerating every worker up front.
  • Model routing — sending a request to a cheap/fast model or an expensive/frontier model depending on task complexity, the same trade a CPU's cache hierarchy makes, or a CDN makes at its edge. Published research shows routers reaching ~95% of top-tier quality while sending only 14–26% of traffic to the expensive model.

Three misconceptions to kill

"More abstraction is always better." False — every layer adds indirection cost: more distance to debug through, more latency, more failure surface. Good engineering picks the right number of layers, not the maximum available.

"Abstractions have no cost." Direct contradiction of Spolsky's law. Every abstraction leaks eventually, and it leaks exactly when you're under the most pressure.

"Abstraction eliminates complexity." It relocates complexity, it doesn't eliminate it. The agent abstracts away syntax, never the underlying design decisions — those are still yours to make.

The takeaway

Abstraction layers are how humans build things too complex for one mind to hold. They always leak. The job isn't to hide the leak — it's to make sure there's always a way down to the layer that's actually true.

That's the standard for everything we ship next: fleets, MCP integrations, routing logic, the ADE itself. Build the layer. Keep the trapdoor.

Keep reading

For builders who ship

Stop renting. Own your software.

You have the idea. We turn it into software your business actually runs on — built for the top 1–2% who move fast and build in public. No renting SaaS forever. Own it.

Built real. Owned forever. Yours to keep.

Not ready yet? Real builders shipping weekly ideas — in your inbox.

0 Comments

Log in to comment

Not a member yet? Join the community

0:00 / 0:00