# Architecture: Scheduler, Executor, Workers, Database — Apache Airflow: Data Pipelines का Orchestration

Source: https://www.geekswithgeeks.com/hi/airflow/af-architecture

> Airflow के मुख्य components के नाम बताएँ और हर एक का काम जानें।

## चलने वाले हिस्से

**DAG processor** आपकी Python files को DAG परिभाषाओं में parse करता है। **Scheduler** तय करता है कि कौन-से DAG runs और tasks तैयार हैं। **Executor** उन tasks को **workers** तक भेजता है जो उन्हें चलाते हैं (स्थानीय रूप से, Celery workers पर या Kubernetes pods के रूप में)। **Metadata database** (production में PostgreSQL या MySQL) DAG runs, task स्थितियाँ और इतिहास रखता है। **Web server / API server** UI परोसता है। Airflow 3 ने अलग API server और task execution interface जोड़ा ताकि workers सीधे database की जगह API से बात करें। ब्योरे versions के बीच बदलते हैं, इसलिए अपने version का दस्तावेज़ देखें।

## Components एक नज़र में

इसे एक schedule किए run के रास्ते की तरह पढ़ें।

```text
dags/*.py --> DAG processor --parses--> metadata DB (serialized DAGs)
                                 |
Scheduler --creates DAG runs & queues ready tasks--> Executor
                                 |                        |
                                 |             Worker(s) run the task code
                                 v                        |
API server / UI <------ task states, logs <---------------+
```

## DAG parsing तेज़ रखें

Scheduler DAG files को नियमित रूप से दोबारा parse करता है। DAG फ़ाइल के शीर्ष स्तर पर धीमा काम (database calls, API अनुरोध, भारी imports) न रखें; उसे tasks के भीतर करें।

**Quiz:** कौन-सा component तय करता है कि कौन-से tasks चलने को तैयार हैं?

- [x] Scheduler
- [ ] Browser
- [ ] OS का metadata cache
- [ ] अकेला Python interpreter

*Answer:* Scheduler. Scheduler schedules और निर्भरताएँ परखता है और executor के लिए tasks queue करता है।
