v1.6.0: Materialised dependency graph
Dependency resolution moves from runtime recursive CTEs to three trigger-maintained tables: DependencyEdges, RecursiveDependencyEdges, ModuleState.
Full notes: 1.6.0 on GitHub.
Performance
| Query | Before | After | Speedup |
|---|---|---|---|
| recursive-apply-for-namespace | 5,617ms | 20ms | 281× |
| recursive-destroy-for-namespace | 5,664ms | 12ms | 472× |
Logical reads on ModuleJobs drop from 558,000 to zero.
Maintenance
Updates are incremental — sp_UpdateDependencyEdgesForModules scopes work to affected module IDs. Non-dependency inputs (literals) short-circuit before doing any work. The recursive closure rebuilds per affected stack. Initial population is conditional, so it runs on first deploy and is a no-op afterwards.
Standalone modules
Modules with no dependency edges now appear in graph views, where a query built on edges previously could not see them.
Dependency graph UI
More compact: expansion panels on module names, links rather than chips, shorter display names, and scroll containers.
Intelligent GitOps for Infrastructure as Code. Automate, orchestrate, and scale your infrastructure deployments with confidence.
© 2026 Snap CD. All rights reserved.