// PATCH №046 · INFRA
Microservices were sold as a way to reduce coupling. In practice, they reduce the visibility of coupling. The dependencies don’t go away; they just become invisible until 3am when one of them is down.
The honest first step
Open a terminal. Run a script that walks every service in your repo and outputs a single CSV: service, depends-on, transport, sync-or-async. Don’t draw the graph yet. Just count rows. The number will surprise you, and not in a good way.
Categories that matter
- Hot path dependencies — called per request, must be available
- Async dependencies — called via queue, can tolerate downtime
- Cron-only dependencies — used by scheduled jobs, low blast radius
- Forgotten dependencies — code-paths nobody hits anymore but the call still exists
Hot path is what you protect. Async is what you monitor. Cron-only is what you log. Forgotten is what you delete — quietly, after a feature flag verifies no one notices.
A dependency you can’t name on demand is a dependency you can’t operate.