Detect cycle in directed dependency graph | Uber