Answer
Sync waves control the order in which resources are applied during a sync. Each resource can carry an annotation `argocd.argoproj.io/sync-wave` with an integer; ArgoCD applies lower waves first and waits for each wave's resources to become Healthy before the next. This orders dependencies like namespaces, CRDs, databases, then apps.
metadata:
annotations:
argocd.argoproj.io/sync-wave: "1"Real-world example Namespaces and CRDs are placed in wave 0, the database in wave 1, and the app in wave 2 so dependencies come up in order.