Problem
Currently, when no service declares uses: [other_service] in azure.yaml, all deploys run sequentially for backward compatibility. This means templates with fully independent services (no inter-service dependencies) cannot opt into parallel deployment without artificially declaring a uses: edge.
Aspire projects are now fixed (PR #7776) — the build-gate policy implicitly enables parallel mode. But non-Aspire templates with independent services have no way to opt in.
Proposed Solution
Add an explicit opt-in field in azure.yaml:
# Enables parallel deploy for all services (no sequential fallback)
execution:
parallel: true
Or at the service-graph level:
services:
api:
...
web:
...
uses: [api] # explicit dep, web waits for api
worker:
...
# no uses: -> runs in parallel with api
Key Considerations
uses: [] cannot work — due to omitempty, an empty list is indistinguishable from an absent field at the YAML/Go level.
- Backward compatibility — sequential must remain the default for existing templates that may rely on implicit ordering.
- Scope — this affects deploy ordering. Provision parallelism is already controlled by
infra.layers + dependsOn.
- Extension support — the field should be generic enough for extensions to consume.
Context
Related
Problem
Currently, when no service declares
uses: [other_service]in azure.yaml, all deploys run sequentially for backward compatibility. This means templates with fully independent services (no inter-service dependencies) cannot opt into parallel deployment without artificially declaring auses:edge.Aspire projects are now fixed (PR #7776) — the build-gate policy implicitly enables parallel mode. But non-Aspire templates with independent services have no way to opt in.
Proposed Solution
Add an explicit opt-in field in azure.yaml:
Or at the service-graph level:
Key Considerations
uses: []cannot work — due toomitempty, an empty list is indistinguishable from an absent field at the YAML/Go level.infra.layers+dependsOn.Context
Related
cli/azd/internal/cmd/service_graph.go—hasExplicitOrderinglogic