The Great Microservices Retreat Is Really a Lesson About Borrowed Taste
June 21, 2026 · Paul Graham, Hackers & Painters~5 min read
A decade ago, splitting your app into dozens of microservices was the unmistakable mark of a serious engineering team. In 2026 the same teams are quietly stitching them back together. The CNCF's 2025 survey found 42% of organizations consolidating microservices into larger units; service-mesh adoption — the elaborate plumbing those architectures demanded — fell from 18% to 8% in two years, more than halved. The interesting question isn't whether microservices were good or bad. It's how an entire industry adopted a heavy default without anyone deciding it was right for them, and what that says about where your own technical choices actually come from.
How a default becomes invisible
Nobody sold most of those teams on microservices with a cost-benefit analysis of their specific system. The architecture arrived the way fashions do: the companies you admired ran it, the conference talks assumed it, the job posts listed it, and at some point "we'll break this into services" stopped being a decision and became the air. That is the precise mechanism Paul Graham warns about in Hackers & Painters. He calls it the Blub paradox: you reach for whatever the people around you reach for, and because it's all you can see, it stops looking like a choice at all. The trap isn't picking a bad tool. It's that you never experienced yourself picking.
Why "what everyone uses" quietly costs you
Graham's sharper point is about the price. Following the herd doesn't make you wrong so much as it makes you average, and average is a strange thing to aim for on purpose. Every service boundary you didn't need bought you a network call that can fail, a deployment pipeline to babysit, an observability bill, a 3 a.m. page when a call times out between two services that used to be one function. None of it was malice. It was the slow tax of running infrastructure sized for Google on a system that serves a few thousand users. The teams now consolidating aren't admitting microservices are bad. They're discovering, the expensive way, that they were paying for a problem they never had — and that "this is how it's done" was carrying weight a real argument should have carried.
A heavy default arrives like fashion and gets adopted before anyone decides it fits — Paul Graham's Blub paradox. It carries a hidden tax: failed calls, pipelines, a soaring bill. The CNCF 2025 survey found 42% of teams consolidating to a modular monolith; service-mesh adoption fell 18% → 8% in two years. Framework: Paul Graham, Hackers & Painters. A reflection on technical decision-making.
The modular monolith isn't a U-turn
What the consolidators are landing on isn't 2010's big ball of mud. It's the modular monolith: one deployable unit, but partitioned inside into clean modules with hard boundaries. You keep the thing that was actually valuable about the microservices era — disciplined separation of concerns — and drop the thing that was incidental: shipping each concern as its own networked process. Read through Graham, that's not a retreat at all. It's a team finally choosing the tool that fits the job instead of the tool that fits the résumé. The boundary you draw in your code is a design decision; the boundary you draw across the network is also an operations bill, and conflating the two is how a fashion disguised itself as an architecture.
The mistake repeats with whatever's hot now
It would be comfortable to file this under microservices and move on, except the pattern doesn't care about the year. Today the unexamined default isn't a service mesh; it's wiring an LLM agent into a workflow that a hundred lines of plain code would handle, because agents are what serious teams are doing this quarter. The shape is identical: a heavy, fashionable solution adopted before anyone asked whether the problem was heavy. Graham's warning ages well precisely because it isn't about microservices or monoliths or agents. It's about the difference between choosing a tool and inheriting one, and noticing which one you just did.
What this means for you
So before the next "best practice" becomes your air, run Graham's quiet test on it. Ask what specific problem in your system this default solves, and make yourself answer in concrete terms — not "scalability," but which component, failing how, at what load you have actually seen. If the honest answer is "it's what good teams use," you haven't found a reason; you've found a fashion wearing the costume of one. Sometimes the herd is right and the heavy tool fits. But you only get to know that by deciding for yourself, which is the one move borrowed taste can never make for you. The 42% walking it back didn't lack skill. They had simply never priced the default — and the bill came due all the same.
Copying the tool everyone uses doesn't make you wrong. It makes you average — and the cost of running infrastructure you never needed comes due whether or not anyone ever decided to take it on.
The retreat isn't an admission microservices failed. It's a team finally pricing a default it had been paying for blind.
Source: framework from Paul Graham, Hackers & Painters (the Blub paradox; "use what everyone uses" trades distinctiveness for averageness). Real-world basis: the CNCF 2025 Annual Survey, which found 42% of organizations consolidating microservices into larger deployable units and service-mesh adoption falling from 18% to 8% over two years, amid the 2026 modular-monolith discussion. A reflection on technical decision-making, not architecture advice for any specific system.
格雷厄姆更锋利的一点,是关于代价。随大流不会让你错,只会让你变得平常——而「故意瞄准平常」本身就是件怪事。每一道你本不需要的服务边界,都给你换来了一次可能失败的网络调用、一条要看顾的部署流水线、一份可观测性账单,以及凌晨三点的一次告警——只因为两个本是同一个函数的服务之间,某次调用超时了。这一切都不是谁存心使坏。它是把为 Google 量身的基础设施,硬套在一个只服务几千用户的系统上,所要缴的那笔慢性税。如今在做合并的团队,不是承认微服务不好。他们是用昂贵的方式发现:自己一直在为一个根本不存在的问题付费——而「这就是业界的做法」,扛起了一个本该由真实论证来扛的分量。