apache/airflow

Apache Airflow - A platform to programmatically author, schedule, and monitor workflows

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 36 minutes ago
Added to GitGenius on December 18th, 2023
Created on April 13th, 2015
Open Issues & Pull Requests: 1,925 (+0)
Number of forks: 17,661
Total Stargazers: 46,594 (+0)
Total Subscribers: 779 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 8.0 hours
Mean response time: 71.5 days
90th percentile: 123.8 days
Tracked items: 6,507

How this project is maintained

Around half of the issues opened in the past year never receive a reply. 79% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. 39% of tracked open issues have had no activity in three months. Only 4% of issues opened in the past year have been closed.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 1,065
New in 7 days: 28
Closed in 7 days: 28
Avg open age: 439 days
Stale 30+ days: 875
Stale 90+ days: 608

Recent activity

Opened in 7 days: 23
Closed in 7 days: 27
Comments in 7 days: 59
Events in 7 days: 206

Top labels

  • kind:bug (7,362)
  • area:core (4,224)
  • kind:feature (3,037)
  • needs-triage (2,356)
  • good first issue (2,203)
  • area:providers (1,931)
  • area:UI (1,542)
  • kind:meta (1,014)

Detailed Description

Apache Airflow is a Python-based platform for programmatically authoring, scheduling, and monitoring workflows. The project enables users to define workflows as directed acyclic graphs (DAGs) in code, making them maintainable, versionable, testable, and collaborative. The Airflow scheduler executes tasks on worker arrays while respecting specified dependencies, and the platform provides command-line utilities and a rich user interface for visualizing pipelines, monitoring progress, and troubleshooting issues in production environments.

The platform is designed for workflows that are mostly static and slowly changing, where the DAG structure remains similar from one run to the next. Airflow emphasizes that tasks should ideally be idempotent and should not pass large quantities of data between tasks, though metadata can be exchanged using the XCom feature. For high-volume, data-intensive operations, the platform recommends delegating to external services. While Airflow is not a streaming solution, it is frequently used to process real-time data by pulling from streams in batches.

Three core principles guide Airflow's design: Dynamic pipelines are defined in code, enabling dynamic DAG generation and parameterization. The framework is extensible with a wide range of built-in operators and can be extended to fit specific needs. Flexibility is achieved through Jinja templating engine integration, allowing rich customizations.

The platform supports Python versions 3.10 through 3.14 on the main development version and stable 3.2.0 release, with the deprecated 2.11.2 version supporting 3.10 through 3.12. Both AMD64 and ARM64 platforms are supported. Kubernetes compatibility spans versions 1.30 through 1.35 for current releases. Database support includes PostgreSQL 14-18, MySQL 8.0 and 8.4, and SQLite 3.15.0 and later, though SQLite is recommended only for development and testing, not production use.

Airflow is commonly used for data processing tasks in data engineering, data integration, ETL and ELT workflows, machine learning operations, and general workflow orchestration. The platform is distributed via PyPI, Docker, and Artifact HUB, with significant community adoption evidenced by contributor counts and commit activity metrics. The project operates under the Apache License 2.0 and maintains semantic versioning with defined version life cycles and support policies for Python and Kubernetes versions.