Editor’s note: This Kedro review is based on my hands-on test of Kedro 1.7.0, with kedro-datasets 9.6.0 and Kedro-Viz 12.5.0, on macOS with Python 3.14 in October 2026. It weighs setup effort, catalog and pipeline design, developer tooling, deployment fit and upgrade risk.
Quick verdict: I recommend Kedro for Python data and ML teams moving notebook code into pipelines a whole team can test and rerun. Go in knowing that Kedro does not schedule pipelines, and that 1.0, 1.6 and 1.7 each shipped breaking changes.
Key Takeaways
- Kedro is free under Apache 2.0, with no paid tier; your real costs are compute and an orchestrator.
- In my test, the 9-node spaceflights starter ran in 7.6 seconds, reran in 1.9 seconds and skipped all 9 nodes in 0.0 seconds with –only-missing-outputs.
- It is not a scheduler: production runs need Airflow, Dagster, Prefect or Databricks on top.
- Kedro-Viz dropped experiment tracking in 11.0.0, and notebook-first users face a real learning curve.
- Releases 1.0, 1.6 and 1.7 each required project changes, and telemetry stays on until you opt out.
Kedro is a pipeline framework, not a scheduler. One pip install gives you a project template, a YAML Data Catalog, Python nodes and pipelines, and the Kedro-Viz graph.
In this review, I’ll take a closer look at Kedro’s cost, catalog and pipeline features, and deployment story, so you can see whether it belongs at the center of your team’s pipeline code.

Kedro Pros and Cons
Pros
- Apache 2.0 and $0, with no paid tier or hosted edition.
- The 9-node spaceflights starter ran in 7.6 seconds and reran in 1.9 seconds on my laptop.
- –only-missing-outputs skipped all 9 nodes in 0.0 seconds when every output existed.
- Reloading a versioned model reproduced its R-squared of 0.387 exactly.
- Seven minor releases, 1.1 to 1.7, in ten months.
- Deployment guides for Airflow, Databricks, Vertex AI, SageMaker and 7 more targets.
Cons
- Does not schedule runs, so you still need Airflow, Dagster, Prefect or Databricks.
- The untouched starter fails its own ruff config with 3 errors.
- Telemetry to Heap Analytics is on until you opt out.
- Breaking changes landed in 1.0, 1.6 and 1.7.
- No experiment tracking in Kedro-Viz since 11.0.0.
How Much Does Kedro Cost?
Kedro costs $0: it is Apache 2.0 open source, with no paid tier, hosted service or enterprise edition. The packages around it install from PyPI at no cost too:
- Kedro (free): the framework itself, version 1.7.0 from September 28, 2026, for Python 3.10 or newer.
- kedro-datasets (free): the separate connectors package, version 9.6.0, installed with extras such as pandas-exceldataset.
- Kedro-Viz (free): the pipeline visualization, version 12.5.0, installed alongside Kedro.
- Plugins (free): kedro-airflow 0.11.0, kedro-dagster 0.8.1 and kedro-mlflow 2.0.3 for orchestration and tracking.
| Component | Package and version | Cost | What you still pay for |
|---|---|---|---|
| Framework | kedro 1.7.0 | $0 | Compute where your pipelines run |
| Data connectors | kedro-datasets 9.6.0 | $0 | Storage and warehouse usage |
| Visualization | kedro-viz 12.5.0 | $0 | Hosting, if you publish a static build to S3, Azure or GCP |
| Orchestration plugins | kedro-airflow 0.11.0, kedro-dagster 0.8.1 | $0 | The orchestrator, such as Dagster+ from $10 a month or Prefect Starter at $100 a month |
| Tracking plugin | kedro-mlflow 2.0.3 | $0 | An MLflow server or managed MLflow |
Is Kedro Good Value for Money?
- The software is free, the stack is not: Kedro does not schedule, so budget for an orchestrator: Dagster+ Solo costs $10 a month and Starter $100 a month plus usage credits, and Prefect Starter costs $100 a month.
- Cheaper than a control plane: ZenML’s open-source edition is also free, but its managed Scale plan costs $999 a month per workspace, while Kedro has no managed tier to grow into.
- Time is the real price: in my test, the starter meant 8 data-layer folders, 4 parameters files and a 33-second dependency install for 9 functions, and each 1.x minor upgrade can mean project changes.
- No exit fee: nodes are plain Python functions, so leaving Kedro means rewriting the glue code, not migrating off a paid platform.
Reviewer’s Notes: Start with the free framework and the scheduler you already run, whether that is Airflow, Databricks Jobs or Prefect, and add kedro-airflow or kedro-dagster only when the first pipeline needs a schedule. I would not pay for a managed control plane like ZenML Scale until Kedro’s catalog and runners stop covering your reproducibility needs.
My Experience With Kedro
I installed Kedro into a fresh Python 3.14.6 virtual environment on an Apple Silicon Mac, with no cloud account and no Docker. One pip install resolved kedro 1.7.0, kedro-datasets 9.6.0, kedro-viz 12.5.0 and kedro-telemetry 0.9.0, which both Kedro and Kedro-Viz pull in as a dependency.
How I Installed and Scaffolded the Project

Every CLI command printed a banner announcing that Kedro sends anonymous usage data, along with the opt-out options. No consent prompt appeared during kedro new, so telemetry stays on until you act; I set KEDRO_DISABLE_TELEMETRY=1 for the rest of the test. Every command also printed three OmegaConf deprecation warnings about register_new_resolver(), noise from the 1.7.0 and current OmegaConf combination rather than an error.
Scaffolding took about 3 seconds with kedro new --name=spaceflights --tools=lint,test,data --example=y. When I passed viz as a tool, Kedro returned an error asking me to remove it, because Kedro-Viz ships in every project anyway. The generated project gave me:
- conf/base: catalog.yml plus 4 parameters files, shared by the whole team.
- conf/local: a git-ignored credentials.yml for secrets.
- data/01_raw to data/08_reporting: 8 numbered folders, one per data layer.
- src/spaceflights/pipelines: 3 pipelines, data_processing, data_science and reporting.
- tests and pyproject.toml: a test folder and a [dev] extra with pytest and ruff.
Installing the starter’s requirements (scikit-learn 1.8, seaborn, plotly, matplotlib and jupyterlab) took 33 seconds. That is a lot of structure for 9 functions compared with a single notebook, and it matches the Kedro team’s own user research, which found notebook-focused users find the framework challenging to learn.
How My First Run Went
My first kedro run executed 9 nodes across 3 pipelines in 7.6 seconds and trained a model with an R-squared of 0.387 on the test data. That first run also spent about 55 seconds building the Matplotlib font cache, a one-time cost. The second run took 1.9 seconds of pipeline time and 4.65 seconds wall-clock, including CLI start-up.
Rerunning with –only-missing-outputs printed “Skipping all 9 nodes” and finished in 0.0 seconds, because every persistent output already existed. Then I ran only the data_science pipeline with --params "model_options.test_size=0.3": 3 nodes ran, and R-squared moved to 0.331 without me editing a single file.
What Broke
A deliberate typo in a node input, “review” instead of “reviews”, failed before any node ran with a ValueError naming the missing input. The message was clear, but it offered no did-you-mean suggestion and arrived under a long rich traceback.
Rerunning only evaluate_model_node against an older model with –load-versions failed with “Pipeline input(s) {‘X_test’, ‘y_test’} not found”, because the starter keeps the train/test split in memory instead of in the catalog. Persisting those two datasets fixed it, as I show in the catalog section below.
Reviewer’s Notes: Reruns were where Kedro paid off for me: 1.9 seconds for the full starter, 0.0 seconds when nothing had changed, and a parameter override with no file edits. Before you rely on partial runs, check which intermediate datasets your starter leaves in memory, because any slice that begins after them will fail.
Kedro’s Data Catalog and Dataset Factories
Each persisted dataset in a Kedro project is a named entry in conf/base/catalog.yml that points at a dataset class from the separate kedro-datasets package, version 9.6.0. The starter’s entries include Parquet and pickle files, and Kedro does not publish an official count of dataset types.
Dataset Factories

Dataset factories replace repetitive entries with one pattern. I swapped two explicit Parquet entries for a single “preprocessed_{name}” pattern and added a “{split}_test” pickle pattern to persist X_test and y_test. The full run still passed, and X_test.pkl and y_test.pkl appeared in data/05_model_input.
Kedro resolves a dataset name in a fixed order: explicit patterns first, then the one catch-all pattern you may define, then an in-memory MemoryDataset as the default. That default is why X_test and y_test were not on disk for my evaluate-only run until I gave them a pattern.
Versioned Datasets
Setting versioned: true on the regressor pickle made Kedro write a new timestamped folder on every run, 5 versions after 5 runs. With the test split persisted, kedro run --nodes evaluate_model_node --load-versions regressor:2026-10-12T13.49.30.529Z reloaded my first model and reproduced its R-squared of 0.387 exactly, in 0.0 seconds of pipeline time.
DVC gives you Git-style data versioning with pipelines defined as YAML stages, while Kedro puts the versioned flag on the catalog entry itself, next to the dataset definition in your Python project.
Configuration, Validation and Catalog CLI
- Config layers: OmegaConfigLoader reads conf/base, then conf/local, which overrides base; credentials belong in conf/local only.
- Catalog CLI: 1.7.0 offers describe-datasets, list-patterns and resolve-patterns, and kedro catalog create was removed in 1.0.
- Validation: since 1.6, catalog entries can carry a validator, with Pandera built in through kedro[pandera-pandas] or kedro[pandera-polars]. I did not test it.
The catalog also works without the rest of Kedro, but the Kedro team’s own user research found users assume all-or-nothing adoption and do not realize it. If your team already has its own project template, the catalog alone is a lighter way in.
Pipelines, Nodes and Runners
A Kedro node wraps one Python function with named inputs and outputs, and a pipeline connects nodes by matching those names. The kedro run command then slices the graph without code changes:
- By position: –from-inputs, –to-outputs, –from-nodes, –to-nodes and –nodes.
- By label: –tags, –namespaces, –pipeline and –pipelines.
- By configuration: –params, –env, –load-versions, –runner and –runner-params.
Runners

SequentialRunner is the default, and ParallelRunner and ThreadRunner ship with Kedro too. On the 9-node starter, ParallelRunner took 4.1 seconds of pipeline time and 7.29 seconds wall-clock, slower than sequential because of process start-up, while ThreadRunner finished in 1.7 seconds.
ParallelRunner also skips node and dataset hooks, does not work with SparkDataset, and often fails to pickle fsspec cloud datasets on S3, GCS or Azure. For cloud data and Spark, use ThreadRunner instead, for example kedro run --runner=ThreadRunner --runner-params=max_workers=4. On a 9-node DAG, ThreadRunner’s 0.2-second gain over sequential is noise, so I would stay on the default SequentialRunner.
Scaffolding New Pipelines
kedro pipeline create monitoring generated 5 files: init.py, nodes.py and pipeline.py in the pipeline folder, a test_pipeline.py under tests, and a parameters_monitoring.yml under conf/base.
A long node that fails late loses the output it was still holding in memory. Split multi-hour jobs into smaller nodes with persisted outputs: as my –load-versions failure showed, a sliced run such as –from-nodes only works when the inputs of its first node are saved in the catalog.
Metaflow takes a different route with Python flow classes and no catalog or project template, and Apache Hamilton builds DAGs from plain functions without a project template. Kedro is the pick when you want the template and catalog on top of the DAG.
Kedro-Viz, Testing and Developer Tooling

kedro viz build turned my project into a static Kedro-Viz site in 3.4 seconds: a 9.9 MB build folder with index.html, an api folder and assets. The other two kedro viz subcommands are run and deploy; I did not open the interactive UI in a browser or test deploy to S3, Azure or GCP.
You can try these Kedro-Viz features on the public demo at demo.kedro.org:
- Focus mode and search: drill into modular pipelines, then search and filter the graph.
- Metadata panel: parameters and Plotly charts for the selected node.
- Node previews: Mermaid, text and image previews since 12.3.0.
- Workflow view: pipeline execution runs since 12.0.0.
Kedro-Viz deprecated experiment tracking in 10.2.0 and removed it in 11.0.0. For run tracking, pair Kedro with MLflow through kedro-mlflow 2.0.3, which I did not test.
Testing and Linting
After pip install -e ".[dev]", pytest ran the starter’s 4 tests, all passing, in 3.90 seconds. ruff check . on the untouched starter returned 3 errors in the generated test file: 1 unsorted import and 2 PLR2004 magic-value warnings. The template fails its own lint configuration out of the box, so budget a cleanup commit before you turn lint on in CI.
Telemetry and AI Assistants
kedro-telemetry sends anonymized usage data to Heap Analytics by default, and the FAQ below lists every opt-out. Only DO_NOT_TRACK or KEDRO_DISABLE_TELEMETRY also stops the telemetry about kedro new itself.
For AI coding assistants, kedro-mcp is an official MCP server (uvx kedro-mcp@latest) for VS Code Copilot or Cursor, with prompts for notebook conversion and project migration, and kedro-skills packages Kedro knowledge for assistants. I did not test either.
Does Kedro Replace Airflow? Deployment, Upgrades and the 1.x Line

No: Kedro executes pipelines but does not schedule them, so a production pipeline still needs an orchestrator to trigger it. Kedro supports these deployment targets:
- Orchestrators: Airflow, Dagster, Prefect and Kubeflow Pipelines.
- Cloud platforms: Databricks, Amazon SageMaker, Amazon EMR Serverless, AWS Step Functions, Azure and Vertex AI.
- Distributed compute: Dask.
- Single machine: Docker, a packaged project or the CLI.
Kedro marks its Argo Workflows and AWS Batch guides as legacy and untested against recent releases. Plugin freshness varies: kedro-dagster 0.8.1 shipped on October 2, 2026 and kedro-airflow 0.11.0 on July 15, 2026, while kedro-docker 0.6.2 has had no release since November 27, 2024. I did not test any deployment plugin, so treat these as supported paths rather than proven ones.
Upgrade Risk on the 1.x Line

Kedro 1.0, released July 22, 2025, made the rewritten DataCatalog the default and removed several things 0.19 projects relied on:
- Removed commands: kedro catalog create and kedro micropkg.
- Renamed arguments: extra_params became runtime_params and session_id became run_id.
- Changed flags: –namespace became –namespaces.
Since then, 1.6 renamed RUNNER_MODULES_WHITELIST to RUNNER_MODULE_ALLOWLIST, and 1.7 restricts custom logging classes in conf/logging.yml to an allowlist, a security fix that can break projects with their own log handlers. With seven minor releases from 1.1 to 1.7 in ten months, pin your Kedro version and read the release notes before every minor upgrade.
What the 1.x Releases Added
- 1.2 (January 2026): –pipelines for running several pipelines in one run, plus experimental LLM context nodes.
- 1.3 (March 2026): parameter validation into Pydantic models or dataclasses from type hints.
- 1.4 (May 2026): Python 3.14 support, which is what I ran this review on.
- 1.5 (June 2026): an HTTP server, kedro server start, with /run, /health and /snapshot endpoints.
- 1.7 (September 2026): LLM context nodes promoted to stable.
I did not test the LLM nodes, Pydantic validation or the HTTP server. Kedro started at QuantumBlack, McKinsey’s AI arm, was open-sourced in 2019 and was donated to the Linux Foundation in January 2022, where it is hosted under LF AI & Data.
How Does Kedro Compare to Competitors?
Most Kedro rivals either schedule pipelines, like Airflow, Dagster and Prefect, or structure ML work around artifacts and flows, like ZenML and Metaflow:
- Apache Airflow: wins scheduling for many job types from one task-first scheduler; Airflow 3.3.2 is current, and the project has about 47,000 GitHub stars against Kedro’s 11,000. Kedro pipelines reach it through kedro-airflow 0.11.0, so the two usually work together rather than compete.
- Dagster: wins asset lineage, partitions and data checks; Dagster+ Solo costs $10 a month and Starter $100 a month plus usage credits. Prefect announced an agreement to acquire Dagster Labs in July 2026, so watch the roadmap before you commit. kedro-dagster 0.8.1 maps Kedro projects onto Dagster.
- Prefect: wins Python-native scheduling with a free Hobby tier and Starter at $100 a month, but gives you no project template or data catalog. Pick it to schedule Kedro runs, not to replace them.
- ZenML: wins as an artifact and model control plane on top of Airflow or Kubernetes; the open-source edition is free and Scale costs $999 a month per workspace. Choose ZenML when you need a model registry and run lineage across teams; choose Kedro when the problem is messy pipeline code.
- Metaflow: wins for data scientists who prefer Python flow classes over a catalog and template; it came out of Netflix, is Apache 2.0 licensed and fits teams that want one class per flow instead of Kedro’s folders.
- Apache Hamilton: wins for lightweight transformation DAGs built from plain functions; it is an Apache incubator project with no project template or catalog.
- DVC: wins Git-style data versioning, with pipelines defined as YAML stages instead of Python nodes.
- MLflow: complements Kedro rather than replacing it, covering the experiment tracking and model registry that Kedro-Viz dropped.
Ploomber, once a notebook-first alternative, had its repository archived on July 12, 2025, so it is no longer an option.
| Tool | Wins at | Cost |
|---|---|---|
| Kedro | Project template, Data Catalog, testable nodes | Free, Apache 2.0 |
| Apache Airflow | Scheduling many job types | Open source |
| Dagster | Asset lineage, partitions, checks | Dagster+ from $10 a month |
| Prefect | Python-native orchestration | Hobby free; Starter $100 a month |
| ZenML | Artifact and model control plane | Open source free; Scale $999 a month per workspace |
| Metaflow | Python flow classes | Free, Apache 2.0 |
| Apache Hamilton | Function-based DAGs | Free, Apache 2.0 |
| DVC | Data versioning in Git | Open source |
How I Reviewed Kedro
I installed Kedro 1.7.0 in a fresh Python 3.14 virtual environment on an Apple Silicon Mac, with no cloud account or Docker, and built the spaceflights starter end to end. I timed full, repeated, sliced and parameter-override runs, compared all three runners, added dataset factories, reloaded a versioned model, triggered deliberate errors, ran the starter’s tests and lint, and built a static Kedro-Viz site.
I weighed setup effort, catalog and pipeline design, developer tooling, deployment fit and upgrade risk, and compared Kedro with Airflow, Dagster, Prefect, ZenML, Metaflow, Apache Hamilton and DVC. I did not test the Kedro-Viz interactive UI, kedro viz deploy, deployment plugins, Spark, MLflow or the LLM nodes. Prices current as of October 2026.
Kedro Review: Should You Standardize Your Team’s Pipelines on Kedro?
Yes, if you run a Python data or ML team moving notebook pipelines into a shared, testable structure and you already have a scheduler. In my test, Kedro scaffolded a 9-node project with tests in about 3 seconds, reran it in 1.9 seconds, skipped every node in 0.0 seconds when nothing had changed, and reloaded a versioned model to the same R-squared, all for $0.
Skip it for one-person throwaway analysis, where 8 data-layer folders and a base and local config split are overhead. Skip it too if you need a scheduler in the box (Dagster or Prefect) or built-in experiment tracking (MLflow or ZenML), or if only one person on your team wants it, because the template pays off only when everyone follows it.
Go in eyes open about the learning curve for notebook-first users, breaking changes in 1.0, 1.6 and 1.7, and telemetry you must switch off yourself.
Next action: install Kedro, run the spaceflights starter, then run one slice with –to-nodes or –load-versions against your own data to see whether the catalog fits how your team works.
Kedro FAQ
Is Kedro free?
Yes. Kedro is Apache 2.0 open source with no paid tier, hosted service or enterprise edition, and Kedro-Viz and kedro-datasets install free alongside it. Your costs are the compute your pipelines run on and the orchestrator that schedules them, such as Dagster+ from $10 a month or Prefect Starter at $100 a month.
Is Kedro an orchestrator like Airflow?
No. Kedro structures and executes pipelines but does not schedule them. For production schedules you pair it with Airflow, Dagster, Prefect, Databricks or another orchestrator, through plugins such as kedro-airflow 0.11.0 or kedro-dagster 0.8.1. See “Does Kedro Replace Airflow?” above for the full list of deployment targets.
What is the latest Kedro version and Python support?
Kedro 1.7.0, released September 28, 2026, is the latest version. It requires Python 3.10 or newer and has supported Python 3.14 since 1.4.0, and I ran this review on Python 3.14.6. Python 3.9 support ended with 1.1.0 in November 2025, so older environments need an upgrade first.
Does Kedro-Viz still have experiment tracking?
No. Kedro-Viz deprecated experiment tracking in 10.2.0 and removed it in 11.0.0. The current release, 12.5.0, focuses on the pipeline graph, metadata panel, node previews and Workflow view. For tracking runs, parameters and models, pair Kedro with MLflow through the kedro-mlflow plugin, version 2.0.3.
Does Kedro collect telemetry and how do I opt out?
Yes. kedro-telemetry installs with Kedro and sends anonymized usage data to Heap Analytics by default, and no consent prompt appeared when I created a project. Set DO_NOT_TRACK or KEDRO_DISABLE_TELEMETRY, create projects with kedro new –telemetry=no, set consent: false in the project’s .telemetry file, or pip uninstall kedro-telemetry.
Can I use Kedro with AI coding assistants?
Yes. kedro-mcp is an official MCP server you run with uvx kedro-mcp@latest in VS Code Copilot or Cursor, with prompts for converting notebooks, migrating projects and general usage. kedro-skills is a separate pip package of Kedro knowledge for assistants. I did not test either.
