# mdrmuhaimin/base-airflow architecture

> Architecture diagram of the GitHub repository mdrmuhaimin/base-airflow, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-23). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/mdrmuhaimin/base-airflow
- Repository: https://github.com/mdrmuhaimin/base-airflow

## Overview

Base Airflow is a starter project for defining and running scheduled workflows. Its demonstrated user-to-result path is a daily DAG run: Airflow executes extract, transform, and load tasks, passing task results through TaskFlow/XCom; the final task prints the total order value. The README also documents running the project with airflowctl or Docker Compose. The repository includes only one example DAG; the deployment configuration and broader Airflow internals are not sampled, so those relationships are shown only at the documented level.

Main entry points: [`docker-compose.yaml`](https://github.com/mdrmuhaimin/base-airflow/blob/main/docker-compose.yaml) (Docker Compose), [`airflow/dags/example_dag_basic.py`](https://github.com/mdrmuhaimin/base-airflow/blob/main/airflow/dags/example_dag_basic.py) (Extract orders), [`airflow/settings.yaml`](https://github.com/mdrmuhaimin/base-airflow/blob/main/airflow/settings.yaml) (Airflow settings)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Project entry"]
  node_airflowctl["airflowctl"]
  node_compose["Docker Compose"]
end

subgraph group_runtime["Workflow runtime"]
  node_dags["DAG definitions"]
  node_scheduler["Airflow scheduler"]
  node_extract["Extract orders"]
  node_transform["Transform totals"]
  node_load["Print total"]
end

subgraph group_deployment["Run configurations"]
  node_settings["Airflow settings<br/>[settings.yaml]"]
end

node_user(("Project operator"))
node_result(("Printed order total"))

node_user -->|"runs with"| node_airflowctl
node_airflowctl -->|"runs project"| node_scheduler
node_user -->|"starts with"| node_compose
node_compose -->|"starts services"| node_scheduler
node_settings -->|"configures"| node_scheduler
node_dags -->|"defines schedule"| node_scheduler
node_scheduler -->|"dispatches daily"| node_extract
node_extract -->|"passes XCom data"| node_transform
node_transform -->|"passes XCom total"| node_load
node_load -->|"prints"| node_result

click node_compose "https://github.com/mdrmuhaimin/base-airflow/blob/main/docker-compose.yaml"
click node_settings "https://github.com/mdrmuhaimin/base-airflow/blob/main/airflow/settings.yaml"
click node_dags "https://github.com/mdrmuhaimin/base-airflow/blob/main/airflow/dags/example_dag_basic.py"
click node_extract "https://github.com/mdrmuhaimin/base-airflow/blob/main/airflow/dags/example_dag_basic.py"
click node_transform "https://github.com/mdrmuhaimin/base-airflow/blob/main/airflow/dags/example_dag_basic.py"
click node_load "https://github.com/mdrmuhaimin/base-airflow/blob/main/airflow/dags/example_dag_basic.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_airflowctl,node_compose toneBlue
class node_dags,node_scheduler,node_extract,node_transform,node_load toneAmber
class node_settings toneMint
class node_user,node_result toneIndigo
```

## Components

### Project entry

- **airflowctl**
- [Docker Compose](https://github.com/mdrmuhaimin/base-airflow/blob/main/docker-compose.yaml): `docker-compose.yaml`

### Workflow runtime

- [DAG definitions](https://github.com/mdrmuhaimin/base-airflow/blob/main/airflow/dags/example_dag_basic.py): `airflow/dags/example_dag_basic.py`
- **Airflow scheduler**
- [Extract orders](https://github.com/mdrmuhaimin/base-airflow/blob/main/airflow/dags/example_dag_basic.py): `airflow/dags/example_dag_basic.py`
- [Transform totals](https://github.com/mdrmuhaimin/base-airflow/blob/main/airflow/dags/example_dag_basic.py): `airflow/dags/example_dag_basic.py`
- [Print total](https://github.com/mdrmuhaimin/base-airflow/blob/main/airflow/dags/example_dag_basic.py): `airflow/dags/example_dag_basic.py`

### Run configurations

- [Airflow settings](https://github.com/mdrmuhaimin/base-airflow/blob/main/airflow/settings.yaml): `airflow/settings.yaml`

### Other components

- **Project operator**
- **Printed order total**

## Connections

- Project operator → airflowctl: runs with
- airflowctl → Airflow scheduler: runs project
- Project operator → Docker Compose: starts with
- Docker Compose → Airflow scheduler: starts services
- Airflow settings → Airflow scheduler: configures
- DAG definitions → Airflow scheduler: defines schedule
- Airflow scheduler → Extract orders: dispatches daily
- Extract orders → Transform totals: passes XCom data
- Transform totals → Print total: passes XCom total
- Print total → Printed order total: prints
