AWS Step Functions
Deploy Metaflow workflows to AWS Step Functions for serverless orchestration on AWS.Setup Requirements
- AWS account with appropriate permissions
- S3 bucket for datastore
- AWS Batch configured (for compute)
- Metaflow metadata service (optional but recommended)
Deploying to Step Functions
Configuration Options
Custom name for the state machine (max 80 characters)
Maximum number of parallel tasks
Workflow timeout in seconds
Log execution history to CloudWatch Logs
Use Distributed Map for foreach tasks (supports larger fan-outs)
Managing Step Functions Deployments
Step Functions Example
Step Functions Limitations
- State machine names limited to 80 characters
- Maximum execution history of 25,000 events
- Limited to 8KB state machine definition (use
--compress-state-machinefor large flows) - Schedules run in UTC only (no timezone support)
Argo Workflows
Deploy to Kubernetes-native Argo Workflows for container orchestration.Setup Requirements
- Kubernetes cluster with Argo Workflows installed
- Cloud storage (S3, Azure Blob, or GCS) for datastore
- Kubernetes service account with appropriate permissions
Deploying to Argo Workflows
Configuration Options
Custom workflow name (max 45 characters, lowercase alphanumeric)
Maximum number of parallel pods
Workflow timeout in seconds
Workflow priority (higher values processed first)
Send notifications on workflow failure
Send notifications on workflow success
Slack webhook URL for notifications
Automatically emit Argo Events on completion
Managing Argo Workflows Deployments
Argo Workflows Example
Argo Workflows Features
- Timezone support for schedules
- Custom container images via
@kubernetesdecorator - Argo Events integration for event-driven workflows
- Native Kubernetes features (resource quotas, priority, etc.)
- Workflow notifications to Slack, PagerDuty, or Incident.io
Apache Airflow
Generate Airflow DAGs from Metaflow flows.Setup Requirements
- Apache Airflow installation
- Cloud storage (S3, Azure Blob, or GCS) for datastore
- Kubernetes cluster (for task execution)
Creating Airflow DAGs
Configuration Options
Custom DAG name
Maximum parallel tasks in DAG
DAG timeout in seconds (for scheduled DAGs only)
Airflow worker pool for task execution
Create DAG in paused state
Airflow DAG Example
Airflow Limitations
- All parameters must have default values
- Nested foreach loops not supported
- No
@paralleldecorator support - Requires cloud storage datastore (S3, Azure, or GCS)
- Timezone must be configured in Airflow, not via decorator
Choosing an Orchestrator
AWS Step Functions
Best for:
- AWS-native stacks
- Serverless workflows
- Simple scheduling
- Minimal operations
- No infrastructure to manage
- Tight AWS integration
- Built-in monitoring
- AWS-only
- Limited to UTC schedules
- Quotas on execution history
Argo Workflows
Best for:
- Kubernetes environments
- Custom container images
- Complex event-driven workflows
- Multi-cloud deployments
- Kubernetes-native
- Timezone support
- Event-driven capabilities
- Cloud-agnostic
- Requires K8s cluster
- More complex setup
- Need to manage infrastructure
Apache Airflow
Best for:
- Existing Airflow infrastructure
- Complex DAG dependencies
- Rich ecosystem of operators
- Traditional batch processing
- Mature ecosystem
- Rich UI and monitoring
- Many integrations
- More setup complexity
- Some Metaflow features limited
- Requires DAG file management
Multi-Orchestrator Flows
You can deploy the same flow to different orchestrators:Next Steps
Scheduling
Learn about scheduling flows
Event Triggering
Set up event-driven workflows
Monitoring
Monitor production deployments
Configuration
Configure orchestrator settings
