The “distributed monolith” line is the key takeaway here.
Microservices only buy you something if teams can deploy, version, and reason about them independently. Once shared libraries or coordinated deploys creep in, you’ve taken on all the operational cost with none of the autonomy benefits.
I’ve seen monoliths with clear module boundaries outperform microservice setups by an order of magnitude in developer throughput.
If microservice or monolith is giving order of magnitude improvement in productivity, you clearly are doing something wrong, or having terrible practices.
What improved results for me was forcing a two-step loop:
Step 1: Ask the model to outline component boundaries, data flow, and edge cases — no code.
Step 2: Only after approving the plan, let it generate code for one component at a time.
When I skip the planning step, the output is usually “working but unidiomatic”. With it, reviews get much faster.
Microservices only buy you something if teams can deploy, version, and reason about them independently. Once shared libraries or coordinated deploys creep in, you’ve taken on all the operational cost with none of the autonomy benefits.
I’ve seen monoliths with clear module boundaries outperform microservice setups by an order of magnitude in developer throughput.