API strategy
Agent infrastructure
MACH architecture agent era: microservices, API-first, cloud-native, and headless were built for human developers. Here's what still holds and what needs a new layer.

MACH architecture won the last decade of enterprise software. Microservices, API-first, cloud-native, headless — the four letters became the reference architecture for anyone building modern SaaS. But MACH was designed for a world where the caller was a human developer wiring up a frontend. That caller changed. Agents now sit where React used to. The principles still hold. The assumptions underneath them don't.
The MACH Alliance framed the four pillars as a set. In the agent era, they need to be examined one at a time.
Decomposing a monolith into microservices was always about independent deployment, not about calling patterns. That part still works. Agents don't care whether your product is one binary or forty — they care whether the capabilities they need are reachable.
What breaks is the assumption that the service boundary is the useful unit of composition. A microservice was drawn around a team, a database, or a bounded context. An agent tool is drawn around a task: create the invoice, apply the discount, send the reminder. Those don't map cleanly. A single agent task often crosses three microservices, and a single microservice often exposes eight endpoints an agent should never see as separate tools.
The fix isn't more microservices. It's a tools layer that composes across them.
API-first was the strongest of the four principles. Design the contract before the code. Version it. Publish it. It worked — for the surface teams chose to publish.
The problem is the surface itself. Most established SaaS products expose maybe 2% of what their UI can do through public APIs. The rest lives in internal endpoints, private RPCs, and code paths the frontend calls directly. That was fine when the frontend was the only caller. It's not fine now.
We've argued this before in API-first vs code-first: the wrong debate for the agent era. Methodology doesn't fix the coverage gap. You can be perfectly API-first and still have an agent that can't complete a task because the capability was never designed to be called from outside the UI.
Agent-era API strategy has to account for two audiences: the human developer who wants a stable public contract, and the agent that needs runtime access to the full product surface. Those are different design problems.
Cloud-native meant containers, orchestration, autoscaling — infrastructure that could handle bursty traffic without a capacity meeting. That still matters. But agent traffic doesn't look like the traffic cloud-native was tuned for.
Human traffic is roughly Poisson. Agent traffic is bursty in a different way: a single agent run can fan out into forty tool calls in two seconds, then go quiet for an hour. Retries are aggressive. Idempotency assumptions get tested. Rate limits designed for humans get hit by a single agent doing its job correctly.
Elastic compute handles the volume. It doesn't handle the shape. That's a rate limiting, idempotency, and observability problem — one we've covered in API rate limiting best practices for SaaS in the agent era.
Headless was the most agent-friendly of the four principles on paper. Decouple the frontend from the backend, expose everything through APIs, let any client render it. Agents are just another client, right?
Not quite. Headless assumes the API is the product's full expressive surface. In practice, headless commerce and headless CMS platforms still push a lot of behaviour into the frontend layer — validation, pricing rules, workflow state, permission checks. The UI wasn't just rendering; it was executing logic the API doesn't expose. Agents hitting the headless API get the data but miss the behaviour.
This is why "we're headless, so we're agent-ready" is one of the more common misdiagnoses we see. Headless is necessary. It's not sufficient.
MACH gave established SaaS a shared architecture. The agent era doesn't tear that up — it adds a layer on top of it. That layer is where tools live: composed across microservices, generated from the APIs that already exist, and executed at runtime as the authenticated user rather than a shared service account.
Pontil operates in that layer. We call the category Tools-as-a-Service — infrastructure that makes a SaaS product's real surface reachable by agents without a two-year API rewrite. We meet products where MACH left them: microservices with real API surfaces, some cloud-native discipline, and a gap between what the UI can do and what the API exposes.
That gap is the actual work of the agent era. MACH doesn't close it. A tools layer does.
If you're a technical leader evaluating whether your MACH investment carries into the agent era, the honest answer is: partly. Microservices and cloud-native infrastructure are load-bearing. API-first and headless need a second layer above them — one that composes capabilities into agent-callable tools, handles the traffic shape agents produce, and executes under real user identity.
Don't rip out MACH. Don't declare it obsolete either. Recognise that it solved the last problem — decoupling frontend from backend — and that the next problem is decoupling agent-callable capability from both. The principles still hold. The stack they described is one layer short.
Stay up to date on the ever changing agentic landscape.