Dependency map
What calls what, and what breaks if this goes.
Monitor → Dependency Map is a graph of services and what they depend on.
Why it exists
Two questions, both asked under time pressure:
- If this service is down, what else is broken? — blast radius
- This service is broken; what is it waiting on? — the cause
A list of services answers neither.
Building it
Edges come from three places:
- Declared — you say service A depends on service B.
- Health documents — a service that reports a database dependency in its health document has that edge, automatically.
- Traces — APM spans show real call paths.
Declared edges are authoritative. Discovered ones are shown as discovered, so you can see what the system actually does versus what it was supposed to do — which are rarely the same and the difference is usually the interesting part.
Reading it
Node colour is current status. A service that is up but whose dependency is
down is drawn as at-risk, because it is: it has not failed yet.
Selecting a node highlights everything upstream and downstream of it.
During an incident
The map answers "what else should I check" in one look. Pair it with Change feed — the map says what is connected, the change feed says what moved.
Keeping it honest
A dependency map that has drifted is worse than none, because it is consulted under pressure. Discovered edges keep themselves current; declared ones do not.
Review declared edges when a service is retired. A dangling dependency on a service that no longer exists makes every blast-radius answer slightly wrong.
Where this behaviour lives: frontend/src/app/dependency-map/. If the code and this page disagree, the code is right — please fix the page.
Part of Monitor — Everything that watches something and reports what it saw.