This blog quickly shows the comparison between AWS Step functions and ARGO workflow.
AWS STEP Functions
AWS Step Functions is a serverless orchestration service that lets you integrate with AWS Lambda functions and other AWS services for any specific use cases.
Step functions help to execute stateful and stateless jobs in a sequential way to achieve a solution.
Assume 10-STEP operational workflow; in each step, it does a specific operation that is interrelated to all other jobs, like the success of STEP A triggers STEP B.
Each step can be in the different executor,
STEP-1: python, STEP-2: bash etc..,
And above is a single example and there can be n different use cases for such, like sequential Jobs, parallel jobs and at scale etc.
AWS Step functions are AWS agonistic. Yes, we can communicate with any of the other AWS services via API/Cloud SDK.
One of the practical AWS Step function use cases.
Restore a database from the backup.
Sanitize the sensitive data.
update the connection strings in the secrets manager.
ARGO workflow is an open-source container-native workflow engine for orchestrating jobs on Kubernetes.
container native - Yes, bring out your imagination of use cases here to leverage the power of ARGO-Workflow at scale.
Some of the most common use cases are,
high volume data processing
sequential, parallel and more
directed-acyclic graph (DAG)
How it is different from AWS Step functions?
AWS Step functions are AWS agonistic whereas ARGO Workflows are cloud-agnostic.
Can be provisioned using cloud formation templates and AWS CLI. (submitting step functions via CLI)
job submission can be in JSON/YAML.
support GUI, API, CLI and through supported AWS services. (Pls refer to the aws doc linked at the bottom.)
support to create lambda functions at each stage.
ARGO Workflows can be used across cloud providers.
Workflows can be templated/bootstrapped.
ARGO jobs can be submitted using GUI and CLI.
Workflows can be templated and YAML syntax
AWS STEP Functions.
It is easy to pay as you go, However, if we decode below are the price points to be considered while using step fn.
State transition charges + based on resource usage(CPU RAM utilized for each step)
Lambda backend charges, EC2, ECS, ECR(if required)
Cloud hosting charges in the Kubernetes environment. (can be a part of existing cluster) or Independent hosting in any vm.
Who knows maybe ARGO can come up with their native cloud-hosted environment in the future, and I am counting on it.
We will discuss ARGO workflow with an example in detail in our upcoming blog post
Did you find this article valuable?
Support Jothimani Radhakrishnan by becoming a sponsor. Any amount is appreciated!