
What I like most about Kestra is how it separates the data infrastructure from the AI reasoning layer.
First, the visual UI gives excellent observability. When a real-time event fails, I do not have to search through messy terminal logs. The topology and Gantt views show the exact execution flow step by step. I can click into a failed task, inspect the exact JSON payload or API error, and fix it immediately.
Second, the AI agent plugin allows you to expose infrastructure tasks directly to the model as tools using only YAML. For example, I exposed a PostgreSQL database query and a background web scraper subflow as tools to Gemini. The model can autonomously choose to run a database search, or trigger the scraping subflow if the database returns zero results. Kestra manages the state transitions, connections, and retries behind the scenes without requiring custom Python wrappers.
Finally, it is highly resource efficient. I develop on an older laptop with less than 6 GB of available RAM. Kestra runs smoothly as a standalone server with a small memory footprint, allowing me to build high-throughput, event-driven automation without overloading my system hardware. Review collected by and hosted on G2.com.
I don't particularly dislike something in Kestra, it's a great tool and moreover it is open-source. It just needs some improvements and everything will be really great. For instance, When I was writing code in Pebble template, I got confused when passing complex JSON outputs from an AI model into downstream python script or SQL query, managing quotes and data types requires a lot of trial and error. The parser errors can be hard to read at first.
And other improvement is tracking asynchronous tasks in the UI needs better visual connection. If an AI tool triggers a background subflow without waiting for it to finish, the main topology map does not show that child flow. You have to open separate tabs to track the full execution path. Review collected by and hosted on G2.com.