mrkeyoor.com_
Sat 31 Oct 13:12 UTC
Automationevaluationupdated 03 Oct 2026

kestra review

Kestra is a workflow orchestrator for scheduled jobs and event-driven work across data, infrastructure, and AI systems. You describe flows in YAML or edit the same definition through its visual tools, then Kestra handles triggers, retries, state, and task execution.

+87stars / 7d
Verdict

Our Kestra run installed 11 packages in 9 seconds, but it never built or tested the 585,223-line platform because the detected npm project was only ./e2e. Kestra deserves a trial when scheduled jobs, event triggers, scripts, and infrastructure work have become one orchestration problem. Run that trial with a production-shaped database and worker setup, and test failure replay yourself before trusting a 2.0 deployment.

We ran it

Lab card: what happened when we ran kestraScreenshot of kestra (go.kestra.io/home)
Install✓ · 9s11 packages · 78 MB
Buildn/ano build script
Testsn/ano test script
Known vulns00 critical · 0 high · 0 moderate · 0 low (npm audit)
Repo5592 files~585,223 lines of source · 44.4 MB · 27 CI workflows · tests dir

Answers from our run

Does kestra build from source?

Dependencies installed in 9 seconds (11 packages), and the project has no separate build step. We cloned commit 2a16d48 into a clean Debian container with 3 CPUs and no project-specific setup.

Does kestra have tests you can run?

Not through a standard command: the project exposes no test script or target that our harness could run.

Does kestra have known vulnerabilities in its dependencies?

npm audit found none in the dependency tree at the time of our run.

Who should not use kestra?

Buyers who need the lab result to prove the server builds cleanly: our 9-second install covered only ./e2e, while the main Java platform was neither built nor tested.

What are the alternatives to kestra?

Apache Airflow, Dagster, n8n. Our Kestra run installed 11 packages in 9 seconds, but it never built or tested the 585,223-line platform because the detected npm project was only `.

Setup2/5Quick Docker demo, but our 9-second run covered only e2e tooling
Docs5/5Clear quick start, concepts, deployment routes, and 2.0 migration links
Community5/528,840 stars with 508 issues and 292 pull requests open
Maturity4/5Active v2.0.4 release, with a serious replay defect still open

Discussed on

  1. hnShow HN: Kestra - Open-Source Airflow Alternative142 points
  2. hnShow HN: Free open-source alternative to Airflow/Prefect/Airbyte/Dagster23 points
  3. hnKestra: Infinitely scalable open source orchestration and scheduling platform7 points

Who it’s for

Platform teams that need one control plane for scheduled and event-driven workflows.
Data and infrastructure engineers who want workflows stored as declarative YAML.
Organizations prepared to operate workers, storage, a database, plugins, and access controls.
Teams that want flows callable through MCP or Claude Code Agent Skills.

Who it’s NOT for

Buyers who need the lab result to prove the server builds cleanly: our 9-second install covered only ./e2e, while the main Java platform was neither built nor tested.
Security teams unwilling to grant a local trial root access and the host Docker socket: the README's quick-start command asks for both.
Organizations that require the README-listed action-based RBAC, Policies, Cases, or UI promotion in the open-source edition: those features are identified as Enterprise Edition additions.
Operators who depend on replay after a partial failure without separate verification: open issue 20113 reports a replay ending SUCCESS while later and finally tasks never run.
Teams wanting a low-change scheduler: Kestra 2.0 replaces ForEach and ForEachItem, changes trigger conditions, and ships a migration guide for breaking changes.

Setup reality

Our sandbox installed commit 2a16d48's ./e2e npm package in 9 seconds: 11 packages and 78 MB on disk. It found no generic build or test target, so both steps were skipped. Npm audit reported 0 known vulnerabilities. The checkout itself held 5,592 files, about 585,223 source lines, and occupied 44.4 MB.

That result did not start Kestra. The README's local route pulls a latest-slim container, creates storage and database volumes, mounts the host Docker socket and /tmp, runs as root, and downloads plugins from Maven Central when first used. Real flows also need credentials for whichever databases, clouds, message buses, or model providers they call.

The ./e2e package at the measured commit declares Node 24 or newer, while our supplied sandbox image used Node 22 and still completed npm install. The repository has 27 CI workflow files and a tests directory, but our run did not execute them. Treat the 9-second result as an e2e dependency check, not a server readiness check.

Kestra 2.0 is an orchestration platform, not a small automation script

Kestra sits between a scheduler, a visual workflow editor, and a distributed task runner. A flow is declarative YAML whether you write it in the code editor, assemble it in the no-code view, or change it through an API. Scheduled triggers and events feed the same execution model. That makes the product interesting when several teams have outgrown scattered cron jobs and single-purpose workers.

Version 2.0 reaches well beyond basic scheduling. It adds a persistent AI Copilot, AI agent and RAG task types, a built-in MCP server, and Agent Skills for coding assistants. The same release moves workers to a gRPC controller and stores task outputs outside the execution record. Those are platform choices. Adopting Kestra means choosing its control plane, execution semantics, plugin system, storage, and upgrade path together.

The 9-second npm install covered only the e2e package

Our sandbox cloned commit 2a16d48 and detected the Node project under ./e2e. Npm installed 11 packages in 9 seconds and used 78 MB. That is pleasantly small, but it is the browser-test workspace around Kestra, not the Java server. The full checkout contained 5,592 files, roughly 585,223 lines of source, and occupied 44.4 MB before that install.

This distinction changes the meaning of the result. There was no generic build target in the detected package, so the build step was skipped. There was no generic test target either, so no suite ran. The repository does have a tests directory and 27 CI workflow files. We cannot turn their presence into a passing result, and we cannot call a skipped server build a successful Kestra setup.

The e2e package at that commit declares Node 24 or newer. Our supplied lab-node:22 container still completed npm install, but the version mismatch remains. It may matter when someone runs the e2e commands that our harness did not execute. Pin the supported Node release before using that workspace rather than treating the successful dependency install as compatibility proof.

What happened when we ran it

Our run installed the ./e2e dependencies in 9 seconds: 11 packages and 78 MB on disk. Npm audit found 0 known vulnerabilities across all severity levels. The container had 3 CPUs, 8 GB of RAM, no secrets, and no elevated privileges. Those facts describe one dependency install at commit 2a16d48.

Neither build nor tests ran because the detected npm package exposed no generic target for either step. There is no compiler failure or test log to diagnose. The honest finding is narrower: the e2e dependencies installed, while the main application and the available test estate remained unverified in our sandbox. No performance, workflow throughput, or execution-recovery claim follows from this run.

The Docker quick start asks for root and the host socket

The README offers a much more representative local path: run kestra/kestra:latest-slim on port 8080, backed by named storage and database volumes. The command also runs the container as root, mounts /var/run/docker.sock, and maps /tmp. That may be acceptable on a disposable developer machine. It deserves a security review on a shared host because the trial receives meaningful access to the Docker daemon.

The slim image does not bundle every plugin. With automatic installation enabled, Kestra downloads a plugin from Maven Central the first time a flow needs it. This keeps the initial image smaller, but moves part of dependency acquisition to runtime. Teams with restricted egress or strict artifact approval need to pre-plan the plugin set, decide whether to use the bundled image, and test upgrades with the exact integrations their flows depend on.

An open replay defect can produce a misleading green run

Issue 20113, opened October 1, 2026, describes a failure mode worth reproducing before adoption. After fixing a failed task and replaying from it, the execution can finish as SUCCESS while the later task and the finally block never run. The report says copied error-handler runs can also appear successful. It reproduces on OSS 2.0.1 and a 2.1.0 snapshot, according to the issue.

This is more serious than a cosmetic status bug. A green execution is supposed to tell an operator that the intended work completed. If downstream cleanup or delivery never ran, an external check must catch the gap. The issue remained open with 5 comments on October 3. Until it is fixed and released, test your own replay paths and verify required side effects outside Kestra.

The active 2.0 line still carries migration work

GitHub showed 28,840 stars, 508 open issues, and 292 open pull requests on October 3, 2026. The repository was pushed on October 2, one day before this review, and v2.0.4 shipped September 29. That combination points to active maintenance and a large volume of work, rather than a quiet project whose rough edges have already settled.

The 2.0 changes are substantial. ForEach and ForEachItem become Loop, trigger conditions become when, worker communication moves to gRPC, and the old -no-plugins image name becomes -slim. The README links a migration guide because these are breaking changes. Existing users should inventory flows, plugins, worker layout, and deployment automation before treating the upgrade as a routine patch.

Kestra is a serious candidate when one team must coordinate event-driven jobs and scheduled workflows across many runtimes. Its breadth is also the cost: the 9-second npm result proves almost none of the production path. Start with a representative flow, use your real storage and worker boundaries, then break and replay it. The missing downstream task in issue 20113 is exactly the sort of behavior a glossy first run will not reveal.

Alternatives

ProjectWhat it isPick it when
Apache Airflow gh↗A Python-centered scheduler and workflow platform widely used for data pipelines.pick this instead when your workflows are primarily batch data jobs and your team already works in Python.
DagsterA data orchestrator organized around software-defined assets and Python development.pick this instead when data assets, lineage, and Python-native definitions matter more than language-neutral YAML.
n8n gh↗A visual workflow automation product with a large integration catalog and self-hosting option.pick this instead when business-app automation and a visual builder matter more than infrastructure orchestration.
Node-RED gh↗A low-code flow editor for event-driven applications and connected devices.pick this instead when you need a smaller event-wiring tool for devices, APIs, or local services.

Sources

  1. Kestra README
  2. Kestra v2.0.4 release
  3. Replay from a failed task can omit remaining work
  4. Measured commit 2a16d48

More automation reviews

moli · MatrixMedia · skill-recorder · BPB-Wizard · wenzi-xiaohongshu-workflow · open-dot · the whole board →