Neo4j is often used to model complex graphs in Network Management scenarios. This is a pseudo setup for a network management graph and some sample queries.
CREATE
(crm {name:"CRM"}),
(dbvm {name:"Database VM"}),
(www {name:"Public Website"}),
(wwwvm {name:"Webserver VM"}),
(srv1 {name:"Server 1"}),
(san {name:"SAN"}),
(srv2 {name:"Server 2"}),
(crm)-[:DEPENDS_ON]->(dbvm),
(dbvm)-[:DEPENDS_ON]->(srv2),
(srv2)-[:DEPENDS_ON]->(san),
(www)-[:DEPENDS_ON]->(dbvm),
(www)-[:DEPENDS_ON]->(wwwvm),
(wwwvm)-[:DEPENDS_ON]->(srv1),
(srv1)-[:DEPENDS_ON]->(san)
// Server 1 Outage
MATCH (n)<-[:DEPENDS_ON*]-(upstream)
WHERE n.name = "Server 1"
RETURN upstream
// Most depended on component
MATCH (n)<-[:DEPENDS_ON*]-(dependent)
WHERE n.name='SAN'
RETURN n,
count(DISTINCT dependent)
AS dependents
ORDER BY dependents DESC
LIMIT 1