Kestra

automationdevops

Event-driven workflow orchestration platform where pipelines are defined in YAML. Schedule and trigger data pipelines, ETL jobs, and automation workflows across any language or tool — a simpler alternative to Airflow with a built-in UI and plugin ecosystem

#workflows#orchestration#etl#data-pipelines#yaml#self-hosted

Quick Start

docker run --pull=always --rm -it -p 8080:8080 --user=root -v /var/run/docker.sock:/var/run/docker.sock -v /tmp:/tmp kestra/kestra:latest server local

Overview

Kestra is a workflow orchestration platform where pipelines are written in YAML rather than Python. You describe what to run, when to run it, and what to do when it fails — all in a declarative file that sits in version control alongside your other infrastructure configuration. Kestra reads that YAML, builds the execution graph, and handles scheduling, retries, logging, and alerting.

The YAML approach is the core differentiator from Airflow. In Airflow, a pipeline is a Python file defining a DAG with task objects and operators. In Kestra, the same pipeline is a structured document that any team member can read regardless of their Python fluency. Changing a schedule, adding a notification step, or adjusting a retry policy is a YAML edit rather than a Python code change.

Language agnosticism is a genuine practical advantage. A Kestra workflow can chain a Python script, a shell command, a dbt run, a SQL query against a database, and a call to a REST API — all in the same flow — because each task specifies an execution environment independently. There is no shared Python environment to manage, and adding a task in a different language does not require restructuring the pipeline.

Event-driven triggers go beyond simple cron scheduling. Kestra can start a workflow when a file lands in an S3 bucket, when a message arrives on a Kafka topic, when a webhook fires, or when another workflow completes. This makes it practical for data pipelines that respond to real-world events rather than only running on a fixed schedule.

The plugin ecosystem covers over 600 integrations across cloud providers, databases, messaging systems, and data tools. For ETL pipelines, data engineering workflows, and multi-step automation that spans several systems, Kestra provides the orchestration layer without requiring Airflow’s Python infrastructure.

Kestra: Pros & Cons

Pros (The Wins)Cons (The Friction)
YAML workflows:
Readable, version-controlled
pipelines without Python.
EE for governance:
SSO, audit logs, secrets
behind commercial licence.
Language agnostic:
Python, Node.js, Shell, Docker
images — any task type.
YAML verbosity:
Heavy conditional logic
reads better in Python.
Event-driven triggers:
S3, Kafka, webhooks,
and schedules built in.
Production stack:
PostgreSQL and Elasticsearch
both required.
26.9k stars, 600+ plugins:
Fast-growing with broad
cloud and data tool coverage.
Newer than Airflow:
Fewer community examples
for edge cases.

Use Cases

Specific ways to use Kestra for your workflow.

01
Orchestrate a nightly ETL pipeline that extracts from a database, transforms with dbt, and loads to a data warehouse — defined entirely in YAML
02
Trigger a workflow from a webhook event, an S3 file drop, or a Kafka message without writing custom polling infrastructure
03
Replace a collection of Python scripts stitched together with cron with a dependency-aware pipeline that handles retries and alerting
04
Build an internal automation workflow that chains API calls, database queries, and scripts across different languages

Deployment Strategy

Recommended ways to host Kestra in your own environment.

docker
self-hosted