-
K8s CRD vs. javascript execution service
-
Declarative YAML vs. javascript
-
Argo has built-in artifact support for input/output handling
-
Argo does not have event handling yet (working on it :-)
As of dec 2017
- Both tools are designed for batch workflows involving a Directed Acyclic Graph (DAG) of steps
- Both tools provide flow control for error handling and conditional logic based on the output of upstream steps
- Both tools are open sourced with the Apache License and actively maintained by a community of contributors
- Airflow seems tightly coupled to the Python ecosystem, while Argo provides flexibility to schedule steps in heterogeneous runtimes (anything that can run in a container)
- Argo natively schedules steps to run in a Kubernetes cluster, potentially across several hosts. While Airflow has a contributed feature to schedule jobs on Mesos clusters, there's possibly less integration there (I haven't tried this)
- Airflow DAGs are expressed in a Python-based DSL, while Argo DAGs are expressed in a YAML syntax that is understood natively by and deployable directly to Kubernetes