Argo Project
Argo Events: ingest events from sources (webhooks, s3, sqs, etc) and trigger actions. Usually the kickoff to the WorkflowsArgo Workflows: CI part - build, test, package, etcArgo CD: CD part, compare desired (in git) and actual state (in cluster) and reconciles driftsArgo Rollouts: progressive delivery. Provide canary and blue-green deployments
Flow
Git push → Argo Events (webhook EventSource + Sensor) → Argo Workflows (build, test, scan, push image) - create a tag with the same git commit SHA (or the image digest - crypto hash SHA-256) → commit to config repo (the GitOps repo) → Argo CD (detects Git change, syncs to cluster) → Argo Rollouts (canary/blue-green with metric analysis/analysisrun with successCondition and failureCondition)
Events = trigger
Workflows = CI (build/test)
Argo CD = CD via GitOps (deploy)
Rollouts = progressive delivery (safe release)
A key distinction worth remembering: Argo Workflows uses a push model for running jobs, while Argo CD uses a pull/reconcile GitOps model for deployments — they're complementary, not competing.
State Management
- Are the projects under the Argo umbrella stateful? What state does it persist and how? Is there another project backing this state management? E.g., a workflow processing queue
- How does argo handle multi-region rollouts? Does it replicate the docker images from the registries in different regions?