-
Notifications
You must be signed in to change notification settings - Fork 270
Description
Resource reconciliation currently happens sequentially, which creates a bottleneck for complex graphs. Many resources are independent of each other, yet they are processed one by one because the existing walker enforces sequential execution. This limits throughput and increases processing times unnecessarily.
A simpler approach could be to rely on levelled topological execution and push all resources at the same level into an apply set. Each apply set would contain only the nodes that are ready to be processed in parallel, while still respecting all dependency guarantees. This avoids introducing a fully separate concurrent DAG walker, but still allows independent resources to be applied concurrently within each level.
Before moving forward, it would be useful to discuss how people typically write RGDs and wire up dependencies. This will help us understand patterns and ensure that applying resources in parallel preserves expected behavior.