# Apache Airflow vs Kestra

**Leader by vioscaleAI score:** Apache Airflow

| Attribute | Apache Airflow | Kestra |
|---|---|---|
| **vioscaleAI score** | 69 (66% (medium)) | 59 (54% (medium)) |
| activity.commits_last_30d | 100 | - |
| adoption.dependent_repos | 189 | - |
| adoption.github_stars | 47,054 | - |
| adoption.package_downloads_weekly | 1,607,065 | - |
| content.faq | `[{"answer":"An open-source platform where you define workflows in Python, schedule their execution based on dependencies and timing, and monitor progress through a web interface. Widely used for data orchestration, ML operations, and infrastructure automation. It is indexed under Data Engineering Tools.","source":"https://airflow.apache.org","question":"What is Apache Airflow?","confidence":0.6},{"answer":"Apache Airflow is open source, so it can be self-hosted and used at no licence cost. It is released under the Apache-2.0 licence. Pricing changes often, so verify at source before relying on it.","source":"https://airflow.apache.org","question":"Is Apache Airflow free to use?","confidence":0.6},{"answer":"Apache Airflow supports the web, Linux and a command-line interface. Platforms we have not confirmed are simply not listed here rather than ruled out.","source":"https://airflow.apache.org","question":"What platforms does Apache Airflow support?","confidence":0.6},{"answer":"Yes. Apache Airflow can be deployed cloud / SaaS, hybrid and self-hosted, so it does not have to run on the vendor's infrastructure.","source":"https://airflow.apache.org","question":"Can Apache Airflow be self-hosted?","confidence":0.6},{"answer":"We have confirmed 56 integrations for Apache Airflow, including Amazon Web Services, Microsoft Azure, Google Cloud Platform, Databricks, Snowflake, dbt Cloud, Slack and Salesforce, plus 48 more. This is what we could verify from public sources, so the vendor may support others we have not indexed.","source":"https://airflow.apache.org","question":"What does Apache Airflow integrate with?","confidence":0.6},{"answer":"Yes. Apache Airflow is published under the Apache-2.0 licence, a permissive licence that generally allows commercial use and modification. Licence terms can change between releases, so verify against the repository for the version you intend to use.","source":"https://github.com/apache/airflow","question":"Is Apache Airflow open source?","confidence":0.95}]` | `[{"answer":"An open-source platform designed for orchestrating complex, long-running workflows across data pipelines, AI systems, and infrastructure operations. Supports multiple languages and deployment models (cloud, self-hosted, air-gapped), with built-in reliability features like retries, backfills, and comprehensive observability. It is indexed under Data Engineering Tools.","source":"https://kestra.io/pricing","question":"What is Kestra?","confidence":0.6},{"answer":"Kestra offers a free tier, so you can start without paying. Paid plans are also available: Open Source, Kestra Cloud and Kestra Enterprise. Pricing changes often, so verify at source before relying on it.","source":"https://kestra.io/pricing","question":"Is Kestra free?","confidence":0.6},{"answer":"Kestra supports the web, Linux and a command-line interface. Platforms we have not confirmed are simply not listed here rather than ruled out.","source":"https://kestra.io/pricing","question":"What platforms does Kestra support?","confidence":0.6},{"answer":"Yes. Kestra can be deployed cloud / SaaS, hybrid, on-premise, air-gapped and self-hosted, so it does not have to run on the vendor's infrastructure.","source":"https://kestra.io/pricing","question":"Can Kestra be self-hosted?","confidence":0.6},{"answer":"We have confirmed 40 integrations for Kestra, including Ansible, dbt, Spark, Airbyte, Dremio, Arrow Flight SQL, Git and Kubernetes, plus 32 more. This is what we could verify from public sources, so the vendor may support others we have not indexed.","source":"https://kestra.io/pricing","question":"What does Kestra integrate with?","confidence":0.6},{"answer":"We have independently confirmed SOC 2 and GDPR for Kestra. Certifications we do not list are ones we have not been able to verify from public sources, which is not the same as Kestra not holding them. Always confirm compliance directly before you rely on it.","source":"https://kestra.io/docs/configuration/security-and-secrets","question":"What security certifications does Kestra have?","confidence":0.7},{"answer":"Kestra is available worldwide. Its primary market is the United States.","source":"https://kestra.io/pricing","question":"Where is Kestra available?","confidence":0.5}]` |
| deployment.options | `{"cloud":true,"hybrid":true,"on_prem":true,"self_hosted":true}` | `{"cloud":true,"on_prem":true,"air_gapped":true,"self_hosted":true}` |
| description.long | Apache Airflow is a workflow orchestration platform that enables users to define data pipelines in Python and schedule their execution across distributed workers. It provides a web interface for visualization and monitoring, plus extensive integrations with cloud platforms and services. | A language-agnostic platform that lets teams define and run business-critical workflows declaratively as code, with built-in scheduling, event-driven triggers, retries, failure handling, and full observability across cloud, on-premise, and air-gapped deployments. |
| features.capabilities | `{"role":"orchestrator","lineage":true,"paradigm":"batch","dbt_native":true,"data_quality":true,"python_first":true,"managed_cloud":true,"connector_count":"100+","self_hosted_oss":true,"incremental_runs":true,"distributed_executor":true}` | `{"cdc":false,"role":"orchestrator","lineage":true,"paradigm":"both","iso_27001":false,"dbt_native":true,"data_quality":true,"elt_pushdown":true,"python_first":true,"soc2_type_ii":true,"managed_cloud":true,"connector_count":"1900+","self_hosted_oss":true,"incremental_runs":true,"distributed_executor":true,"builder_ui_architecture":"visual_node_canvas","custom_http_webhook_catch_and_triggering":true,"native_llm_nodes_anthropic_openai_gemini":true,"on_premise_self_hosted_deployment_option":true,"bring_your_own_key_byok_for_llm_inference":true,"web_scraping_and_browser_automation_nodes":false,"sub_workflow_calling_and_reusable_templates":true,"human_in_the_loop_approval_steps_via_slack_email":true,"dynamic_conditional_routing_via_llm_classification":true,"unstructured_document_extraction_pdf_image_to_json":true}` |
| integrations.count | 54 | 2,000 |
| integrations.list | `[{"name":"Amazon Web Services"},{"name":"Microsoft Azure"},{"name":"Google Cloud Platform"},{"name":"Databricks"},{"name":"Snowflake"},{"name":"dbt Cloud"},{"name":"Slack"},{"name":"Salesforce"},{"name":"Tableau"},{"name":"PostgreSQL"},{"name":"MySQL"},{"name":"MongoDB"},{"name":"Redis"},{"name":"Kubernetes"},{"name":"Docker"},{"name":"Apache Spark"},{"name":"Apache Kafka"},{"name":"Apache Cassandra"},{"name":"Apache Flink"},{"name":"Apache Druid"},{"name":"Elasticsearch"},{"name":"Datadog"},{"name":"Jenkins"},{"name":"GitHub"},{"name":"OpenAI"},{"name":"Anthropic"},{"name":"Cohere"},{"name":"Pinecone"},{"name":"Weaviate"},{"name":"Qdrant"},{"name":"Oracle"},{"name":"Teradata"},{"name":"SQLite"},{"name":"Presto"},{"name":"Trino"},{"name":"ClickHouse"},{"name":"Neo4j"},{"name":"Airbyte"},{"name":"Informatica"},{"name":"Asana"},{"name":"Atlassian Jira"},{"name":"Discord"},{"name":"Telegram"},{"name":"Segment"},{"name":"PagerDuty"},{"name":"Opsgenie"},{"name":"Keycloak"},{"name":"Yandex"},{"name":"Zendesk"},{"name":"OpenLineage"},{"name":"New Relic","direction":"outbound"},{"name":"Starrocks","direction":"bidirectional"},{"name":"OpenSearch","direction":"outbound"},{"name":"IBM Cognos TM1","direction":"bidirectional"},{"name":"Marquez","direction":"outbound"},{"name":"Nexla","direction":"bidirectional"},{"name":"Vertica","native":true},{"name":"Microsoft SQL Server","native":true},{"name":"Influx DB","native":true},{"name":"Cloudant","native":true},{"name":"OpenFaaS","native":true}]` | `[{"name":"Ansible"},{"name":"dbt"},{"name":"Spark"},{"name":"Airbyte"},{"name":"Dremio"},{"name":"Arrow Flight SQL"},{"name":"Git"},{"name":"GitHub"},{"name":"GitHub Actions"},{"name":"Kubernetes"},{"name":"Docker"},{"name":"Terraform"},{"name":"Slack"},{"name":"S3"},{"name":"Azure Data Lake Storage"},{"name":"Postgres"},{"name":"JDBC databases"},{"name":"HTTP APIs"},{"name":"Polars"},{"name":"Python"},{"name":"Bash"},{"name":"Node.js"},{"name":"Go"},{"name":"Apache Kafka"},{"name":"Apache Spark"},{"name":"PagerDuty"},{"name":"PostgreSQL"},{"name":"OpenAI"},{"name":"Anthropic"},{"name":"Google Gemini"},{"name":"Perplexity"},{"name":"Google Analytics"},{"name":"Salesforce"},{"name":"Facebook Ads"},{"name":"RabbitMQ"},{"name":"Yahoo Finance"},{"name":"AWS Secrets Manager"},{"name":"HashiCorp Vault"},{"name":"Google Cloud"},{"name":"Google BigQuery"},{"name":"R"},{"name":"Java"},{"name":"Julia"},{"name":"Ruby"},{"name":"Shell"},{"name":"AWS","native":true,"category":"cloud","direction":"bidirectional"},{"name":"Google Cloud Platform","native":true,"category":"cloud","direction":"bidirectional"},{"name":"Azure","native":true,"category":"cloud","direction":"bidirectional"},{"name":"Dataform","native":true,"category":"data_transformation","direction":"bidirectional"},{"name":"Apache Tika","native":false,"category":"document_processing","direction":"outbound"},{"name":"Gemini","native":true,"category":"ai_llm","direction":"outbound"},{"name":"Azure Key Vault","native":true,"category":"secrets_management","direction":"inbound"},{"name":"Google Secret Manager","native":true,"category":"secrets_management","direction":"inbound"},{"name":"Kafka","native":true,"category":"streaming","direction":"bidirectional"},{"name":"Elasticsearch","native":true},{"name":"Datadog","native":true},{"name":"Splunk","native":true},{"name":"MySQL","native":true}]` |
| language.primary | Python | - |
| license.spdx | Apache-2.0 | - |
| market.availability | - | `{"primaryMarkets":["US"],"availabilityScope":"global","availableCountries":[],"notAvailableCountries":[]}` |
| platform.support | `{"cli":true,"mac":true,"web":true,"linux":true}` | `{"cli":true,"web":true}` |
| pricing | `{"type":"open_source","sourceUrl":"https://airflow.apache.org","retrievedAt":"2026-09-07T13:08:28.227Z"}` | `{"type":"hybrid","plans":[{"free":true,"name":"Open Source","summary":"Free, self-hosted","description":"Self-hosted open-source version","contactSales":false},{"free":false,"name":"Kestra Cloud","summary":"Managed cloud with enterprise support","features":["Fully Managed Platform (Hosting, Upgrades, Monitoring)","Built-in Security and Governance Features","Customer Success Program & Enterprise Support with SLA","Audit Logs"],"commitment":"annual","description":"Fully managed cloud platform","contactSales":false},{"free":false,"name":"Kestra Enterprise","summary":"Enterprise self-hosted with advanced governance","features":["Run anywhere Cloud, On-Prem, Air-Gapped","RBAC, audit logs, secrets management, asset lineage","AI Copilot (Any LLM Cloud or Self-Hosted)","Human-in-the-Loop Approvals"],"commitment":"annual","description":"Self-hosted enterprise edition","contactSales":true}],"currency":"USD","freeTier":true,"sourceUrl":"https://kestra.io/pricing","retrievedAt":"2026-09-06T16:17:51.489Z","billingPeriods":["year"]}` |
| pricing.free_tier | yes | yes |
| pricing.model | open_source | freemium |
| pricing.price_level | free | low |
| pricing.transparent | yes | no |
| release.cadence_days | 14 | - |
| release.history | `[{"url":"https://github.com/apache/airflow/releases/tag/3.3.2","date":"2026-09-17T11:10:15Z","type":"stable","version":"3.3.2"},{"url":"https://github.com/apache/airflow/releases/tag/3.3.1","date":"2026-08-12T09:50:17Z","type":"stable","version":"3.3.1"},{"url":"https://github.com/apache/airflow/releases/tag/java-sdk/1.0.0-beta1","date":"2026-07-13T18:14:58Z","type":"prerelease","version":"java-sdk/1.0.0-beta1"},{"url":"https://github.com/apache/airflow/releases/tag/3.3.0","date":"2026-07-06T15:16:00Z","type":"stable","version":"3.3.0"},{"url":"https://github.com/apache/airflow/releases/tag/helm-chart/1.22.0","date":"2026-06-13T23:37:21Z","type":"stable","version":"helm-chart/1.22.0"},{"url":"https://github.com/apache/airflow/releases/tag/airflow-ctl/0.1.5","date":"2026-06-03T20:29:33Z","type":"stable","version":"airflow-ctl/0.1.5"},{"url":"https://github.com/apache/airflow/releases/tag/3.2.2","date":"2026-05-29T06:27:24Z","type":"stable","version":"3.2.2"},{"url":"https://github.com/apache/airflow/releases/tag/helm-chart/1.21.0","date":"2026-04-24T20:54:43Z","type":"stable","version":"helm-chart/1.21.0"},{"url":"https://github.com/apache/airflow/releases/tag/3.2.1","date":"2026-04-22T09:27:57Z","type":"stable","version":"3.2.1"},{"url":"https://github.com/apache/airflow/releases/tag/3.2.0","date":"2026-04-07T14:51:49Z","type":"stable","version":"3.2.0"},{"url":"https://github.com/apache/airflow/releases/tag/helm-chart/1.20.0","date":"2026-03-22T22:34:36Z","type":"stable","version":"helm-chart/1.20.0"},{"url":"https://github.com/apache/airflow/releases/tag/airflow-ctl/0.1.3","date":"2026-03-19T10:35:06Z","type":"stable","version":"airflow-ctl/0.1.3"},{"url":"https://github.com/apache/airflow/releases/tag/3.1.8","date":"2026-03-11T22:16:16Z","type":"stable","version":"3.1.8"},{"url":"https://github.com/apache/airflow/releases/tag/airflow-ctl/0.1.2","date":"2026-02-25T21:45:45Z","type":"stable","version":"airflow-ctl/0.1.2"},{"url":"https://github.com/apache/airflow/releases/tag/helm-chart/1.19.0","date":"2026-02-17T19:54:34Z","type":"stable","version":"helm-chart/1.19.0"},{"url":"https://github.com/apache/airflow/releases/tag/3.1.7","date":"2026-02-04T12:20:25Z","type":"stable","version":"3.1.7"},{"url":"https://github.com/apache/airflow/releases/tag/3.1.6","date":"2026-01-13T11:08:29Z","type":"stable","version":"3.1.6"},{"url":"https://github.com/apache/airflow/releases/tag/airflow-ctl/0.1.1","date":"2026-01-13T21:57:27Z","type":"stable","version":"airflow-ctl/0.1.1"},{"url":"https://github.com/apache/airflow/releases/tag/3.1.5","date":"2025-12-10T09:11:07Z","type":"stable","version":"3.1.5"},{"url":"https://github.com/apache/airflow/releases/tag/3.1.3","date":"2025-11-14T14:47:34Z","type":"stable","version":"3.1.3"}]` | - |
| security.certifications | - | `[{"name":"SOC 2","status":"active"}]` |
| security.gdpr | - | yes |
| security.scorecard | 7.3 | - |
| security.soc2 | - | yes |
| security.trust_center | - | https://kestra.io/docs/configuration/security-and-secrets |
| security.vulnerabilities | `{"count":1,"source":"https://advisories.ecosyste.ms/api/v1/advisories?ecosystem=pypi&package_name=apache-airflow-providers-common-sql&per_page=100","last_12m":0,"max_severity":"HIGH"}` | - |

## Capabilities (Data Engineering Tools)

| Capability | Apache Airflow | Kestra |
|---|:--:|:--:|
| **Core** |  |  |
| Tool role | Orchestrator | Orchestrator |
| Processing paradigm | Batch | Batch + streaming |
| **Connectivity** |  |  |
| Connector count | 100+ | 1900+ |
| CDC / log-based replication | - | ✗ |
| **Transformation** |  |  |
| In-warehouse transformation (push-down) | - | ✓ |
| dbt-native orchestration | ✓ | ✓ |
| **Deployment** |  |  |
| Self-hosted / open-source available | ✓ | ✓ |
| Managed cloud available | ✓ | ✓ |
| **Governance** |  |  |
| Data lineage / asset catalog | ✓ | ✓ |
| **Authoring** |  |  |
| Python-first authoring | ✓ | ✓ |
| **Execution** |  |  |
| Incremental / partition-aware runs | ✓ | ✓ |
| **Quality** |  |  |
| Built-in data quality / tests | ✓ | ✓ |
| **Scale** |  |  |
| Horizontal scale (distributed executor) | ✓ | ✓ |

*Source: vioscaleAI. Generated 2026-10-16T21:23:25.391Z. "-" = undocumented, not absent.*
