This repo contains example Airflow DAGs that model common legacy-scheduler-to-Astro migration patterns for deployments using Astronomer Remote Execution.
example_sftp_lakehouse_remote— SFTP pull, Bronze/Silver/Gold processing, Snowflake publishexample_long_running_batch_deferrable— long-running batch with deferrable pollingexample_web_service_jobs— HTTP trigger + deferrable status pollingexample_databricks_snowflake_orchestration— Databricks compute plus Snowflake publishexample_powershell_and_shell_guardrails— guardrails for Windows PowerShell vs Linux shell executionexample_hybrid_onprem_cloud— hybrid on-prem to cloud orchestration chain
blueprint_sftp_lakehouse_remote— YAML-composed SFTP to lakehouse to Snowflake flowblueprint_long_running_batch_deferrable— YAML-composed long-running API batch with deferrable pollingblueprint_databricks_snowflake_orchestration— YAML-composed Databricks plus Snowflake flowblueprint_hybrid_onprem_cloud— YAML-composed on-prem to cloud orchestration flowblueprint_script_execution_guardrails— YAML-composed cross-platform script execution guardrails
dags/blueprint_dag_loader.py— Blueprint loader that builds all YAML DAGsdags/templates/example_dag_args.py— custom DAG-level YAML config for tags, retries, owner, and schedulingdags/templates/legacy_scheduler_blueprints.py— reusable Blueprint templates for SFTP, remote commands, API jobs, Databricks, Snowflake, and script validationdags/*.dag.yaml— declarative DAG compositions built from those templatesblueprint/generated-schemas/*.schema.json— checked-in Blueprint schemas for Astro IDE/editor support
vendor_sftp_defaultbatch_service_apiservice_api_defaultdatabricks_defaultsnowflake_defaultwindows_remote_executorlinux_remote_executoringestion_gateway
These DAGs use pools to make execution domains visible in the graph and to make concurrency controls explicit:
remote_execution— on-prem or remote-executed taskscloud_control_plane— lightweight API orchestration tasksdatabricks_jobs— Databricks job submissions and monitoringsnowflake_queries— Snowflake publish and reconciliation tasks
- The DAG code is portable Airflow code. The actual Remote Execution routing is configured in Astro, not in DAG syntax.
- The examples avoid XCom-based coordination so they remain compatible with remote execution environments where XCom is unavailable.
- The
remote_executionpool in these examples is a modeling aid for concurrency and intent. - The Blueprint examples use
airflow-blueprintand compose DAGs from YAML viadags/blueprint_dag_loader.py. blueprint/generated-schemas/is committed intentionally so Astro IDE and other editors can use the current Blueprint schemas without an extra generation step after clone.- To regenerate schemas after editing Blueprint templates, run
blueprint schema <name> --template-dir dags/templates > blueprint/generated-schemas/<name>.schema.jsonfor each template. - The Blueprint Databricks examples use a plain
REPLACE_WITH_DATABRICKS_CLUSTER_IDplaceholder so offline linting works cleanly in a public repo. - Replace the placeholder endpoints, paths, job IDs, schemas, stored procedures, and cluster IDs with your own environment-specific values before deployment.