What Are You Delegating?
Every abstraction is a trade: it removes work by making decisions for you. Those decisions are still being made — just not by you, and not visibly. For each abstraction: what it genuinely handles, what remains yours, and the escape hatch.
An ORMAn HTTP client or SDKA managed database or cloud platformAn identity providerAn LLM or coding agentA web frameworkA library functionA managed message queueA cacheA container runtime and orchestrator
An ORMDatabase
const user = await userRepository.findByEmail(email)
Handles 5 things · 5 stay yours · escape hatch: Raw SQL for that query
An HTTP client or SDKAPI Design
const charge = await stripe.charges.create({ amount: 4990, currency: 'eur' })
Handles 5 things · 5 stay yours · escape hatch: The raw HTTP contract: method
A managed database or cloud platformArchitecture
$ cloud db create --engine postgres --size large --replicas 2
Handles 5 things · 5 stay yours · escape hatch: Metrics
An identity providerSecurity
const session = await auth.signIn({ email, password })
Handles 5 things · 5 stay yours · escape hatch: Your own authorization layer: explicit checks at the resource
An LLM or coding agentAgentic AI
"Add retries to the payment call and make it robust."
Handles 5 things · 5 stay yours · escape hatch: Your own engineering knowledge: the fundamentals that let you read the trace
A web frameworkArchitecture
app.post('/orders', validate(schema), async (req, res) => res.json(await createOrder(req.body)))
Handles 5 things · 5 stay yours · escape hatch: The lower-level runtime and protocol: the event loop
A library functionDSA
items.sort((a, b) => a.score - b.score)
Handles 4 things · 5 stay yours · escape hatch: The specific algorithm — counting sort
A managed message queueArchitecture
await queue.publish('order.created', { orderId })
Handles 4 things · 5 stay yours · escape hatch: The delivery semantics: acks
A cacheArchitecture
const product = await cache.wrap(`product:${id}`, () => db.products.find(id), { ttl: 300 })
Handles 4 things · 5 stay yours · escape hatch: An explicit invalidation rule (delete-on-write or events)
A container runtime and orchestratorOperating Systems
$ docker build -t api . && kubectl apply -f deploy.yaml
Handles 4 things · 5 stay yours · escape hatch: The OS underneath: cgroup events