Apache Airflow asset-aware scheduling
Replacing time-based schedules with asset-driven triggers: defining assets by URI, producer and consumer DAGs, AND and OR conditions, asset aliases, and the partitioning added in Airflow 3.3.

Pages on specific Airflow scheduling and execution features that change how pipelines are designed and operated, based on the Airflow core documentation and release notes.
Replacing time-based schedules with asset-driven triggers: defining assets by URI, producer and consumer DAGs, AND and OR conditions, asset aliases, and the partitioning added in Airflow 3.3.
Cutting worker capacity spent on waiting tasks by moving sensors and long polls to deferrable operators, plus running and scaling the triggerer component with failover across instances.
Deploying DAGs from Git with GitDagBundle so every run records its commit and keeps the same code mid-run, compared with local and object storage bundles that always run the latest code, and the rerun setting that decides which version a retry uses.
Running Airflow tasks on workers in other data centers, clouds or restricted networks with the Edge provider, where workers reach the central site over HTTPS only, and combining EdgeExecutor with Celery or Kubernetes executors.
Adding approval gates and manual input steps to pipelines with the human-in-the-loop operators introduced in Airflow 3.1, and where they fit for data releases, change control and review steps.
Creating tasks at run time from upstream results with expand and partial: mapped task groups, the 1,024 default max_map_length, limiting parallel copies with max_active_tis_per_dag, and patterns that replace generated DAGs or loops.
Alerting when a DAG run will finish late with Deadline Alerts, the Airflow 3 replacement for SLAs: reference types including average runtime, async versus sync callbacks, Slack notifiers, tiered warnings, and the triggerer and worker requirements.
Reprocessing history with scheduler-managed backfills: starting them from the UI, CLI or API, choosing reprocess behavior for missing, failed or all runs, backfill concurrency, running backwards and protecting downstream systems from load.
Starting DAGs from messages instead of clocks: AssetWatcher with BaseEventTrigger triggers for Kafka, SQS, Pub/Sub and Azure Service Bus, idempotent consumers, acknowledgement timeouts, shared polling in 3.3, and conditions that cause endless reruns.
Writing Airflow task logic in Java or Go with the language Task SDKs added in 3.3: how they build on the Task Execution API, when they beat containerized tasks, and what stays in Python DAG definitions.
How Airflow 3 interprets cron schedules: CronTriggerTimetable versus CronDataIntervalTimetable, catchup off by default, logical dates on manual runs, start_date rules, and choosing the right timetable before an upgrade changes run timing.
Extending the Airflow 3 UI and API: the React plugin system from 3.1, external views, FastAPI apps and middlewares, migrating Flask AppBuilder plugins, and keeping plugins compatible across upgrades.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.