# astronomer/dag-factory

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/astronomer-dag-factory).**

1,440 stars · 234 forks · Python · Apache-2.0

## Links

- GitHub: https://github.com/astronomer/dag-factory
- Homepage: https://astronomer.github.io/dag-factory/latest/
- awesome-repositories: https://awesome-repositories.com/repository/astronomer-dag-factory.md

## Topics

`airflow` `apache-airflow` `dags` `python`

## Description

Dag-factory is a framework for constructing and managing Apache Airflow data pipelines through declarative configuration files. By replacing manual procedural code with structured YAML definitions, it enables the programmatic generation of complex workflow structures, task dependencies, and execution schedules.

The project distinguishes itself by mapping configuration keys directly to Python class constructors and operators, allowing for the dynamic instantiation of objects and custom logic. It supports hierarchical configuration inheritance to standardize settings across environments and provides mechanisms for injecting Kubernetes pod specifications directly into task definitions to ensure isolated, scalable execution.

The framework covers the full pipeline lifecycle, including automated file discovery, task-level dynamic mapping for parallel processing, and the attachment of metadata for external system integration. It also includes command-line utilities for validating configurations, triggering executions, and managing environment migrations.

## Tags

### Part of an Awesome List

- [Data Pipelines and Orchestration](https://awesome-repositories.com/f/awesome-lists/data/data-pipelines-and-orchestration.md) — Provides a framework for defining and managing complex Apache Airflow data workflows through declarative configuration.

### Data & Databases

- [Declarative Pipeline Construction](https://awesome-repositories.com/f/data-databases/data-processing-pipelines/data-processing-frameworks/declarative-pipeline-construction.md) — Constructs data pipelines by parsing configuration files, allowing users to define workflow structures without manual procedural code. ([source](https://github.com/astronomer/dag-factory/blob/main/README.md))
- [Declarative Workflow Definitions](https://awesome-repositories.com/f/data-databases/data-pipeline-configurations/declarative-workflow-definitions.md) — Enables declarative data engineering by defining workflow logic and transformations in YAML instead of procedural code.
- [Workflow Scheduling And Orchestration](https://awesome-repositories.com/f/data-databases/workflow-scheduling-and-orchestration.md) — Enables scheduling recurring data workflows using cron expressions, time intervals, or data-driven triggers defined in configuration files. ([source](https://github.com/astronomer/dag-factory/blob/main/CHANGELOG.md))
- [Custom Operator Definitions](https://awesome-repositories.com/f/data-databases/custom-database-operators/custom-operator-definitions.md) — Maps user-defined objects and custom operator classes to configuration entries for specialized pipeline logic. ([source](https://github.com/astronomer/dag-factory#readme))

### DevOps & Infrastructure

- [Declarative Configuration Files](https://awesome-repositories.com/f/devops-infrastructure/configuration-management/file-based-configuration/configuration-file-loading/declarative-configuration-files.md) — Defines data pipeline structures and task dependencies using structured YAML files instead of procedural code.
- [Declarative Workflow Definitions](https://awesome-repositories.com/f/devops-infrastructure/workflow-orchestrators/declarative-workflow-definitions.md) — Defines complex task dependencies and execution schedules through structured configuration files rather than imperative scripts.
- [Containerized Task Execution](https://awesome-repositories.com/f/devops-infrastructure/container-deployment/containerized-task-execution.md) — Executes individual pipeline tasks as isolated containers within a cluster using pod specifications defined in configuration.
- [Kubernetes Pod Provisioning](https://awesome-repositories.com/f/devops-infrastructure/kubernetes-pod-provisioning.md) — Injects Kubernetes pod specifications into task definitions to enable isolated and scalable containerized execution.

### Software Engineering & Architecture

- [DAG Workflow Executions](https://awesome-repositories.com/f/software-engineering-architecture/dag-based-dependency-resolution/workflow-orchestration/dag-workflow-executions.md) — Constructs and executes directed acyclic graphs of tasks programmatically at runtime based on configuration definitions.
- [DAG Workflow Pipelines](https://awesome-repositories.com/f/software-engineering-architecture/parallel-processing-pipelines/dag-workflow-pipelines.md) — Constructs data pipelines declaratively by parsing YAML configuration files to generate DAG structures.
- [Workflow Execution Managers](https://awesome-repositories.com/f/software-engineering-architecture/system-internals/centralization-patterns/workflow-execution-managers.md) — Structures intricate dependencies and parallel execution paths using nested task groups to manage large-scale data processing. ([source](https://github.com/astronomer/dag-factory/blob/main/CHANGELOG.md))
- [YAML Configuration Files](https://awesome-repositories.com/f/software-engineering-architecture/application-lifecycle-management/configuration-management/configuration-formats-and-schemas/yaml-configuration-files.md) — Standardizes data workflow definitions across environments using human-readable YAML configuration files.
- [Configuration Inheritance](https://awesome-repositories.com/f/software-engineering-architecture/application-lifecycle-management/configuration-management/hierarchical-configuration-systems/configuration-inheritance.md) — Supports hierarchical inheritance of configuration settings to standardize pipeline parameters across different environments.
- [Declarative Configuration Management](https://awesome-repositories.com/f/software-engineering-architecture/declarative-configuration-management.md) — Enables declarative definition of infrastructure resources and pipeline parameters by mapping configuration keys to class constructors. ([source](https://astronomer.github.io/dag-factory/latest/configuration/custom_py_object/))
- [Dynamic Object Instantiation](https://awesome-repositories.com/f/software-engineering-architecture/dynamic-object-instantiation.md) — Maps configuration strings to Python class constructors to dynamically instantiate complex objects at runtime.
- [CLI Pipeline Dispatchers](https://awesome-repositories.com/f/software-engineering-architecture/modular-architectures/cli-pipeline-dispatchers.md) — Provides command-line utilities for triggering pipeline executions, validating configurations, and managing environment migrations. ([source](https://github.com/astronomer/dag-factory/blob/main/CHANGELOG.md))
- [Dynamic Task Spawning](https://awesome-repositories.com/f/software-engineering-architecture/task-execution-engines/dynamic-task-spawning.md) — Generates multiple task instances from single configuration entries to handle parallel processing requirements automatically.
- [Dynamic Task Mappings](https://awesome-repositories.com/f/software-engineering-architecture/task-execution-engines/dynamic-task-spawning/dynamic-task-mappings.md) — Creates multiple task instances from a single configuration entry to process varying data volumes or parallelize operations. ([source](https://astronomer.github.io/dag-factory/latest/features/dynamic_tasks/))

### Development Tools & Productivity

- [Workflow Task Generators](https://awesome-repositories.com/f/development-tools-productivity/workflow-task-generators.md) — Generates dynamic workflow structures and task instances at runtime based on configuration inputs.

### System Administration & Monitoring

- [Pipeline Lifecycle Managements](https://awesome-repositories.com/f/system-administration-monitoring/log-ingestion/log-transformation-pipelines/named-pipeline-ingestion/pipeline-lifecycle-managements.md) — Manages the full lifecycle of data pipelines, including validation, organization, and deployment across environments.
