Topological sort of dependencies
In an app split into 30 modules, the DI container initializes services in an order someone maintains by hand, and it crashed with "A needs B and B needs A." What algorithm gives you a safe initialization order from the dependency graph?