mrkeyoor.com_
Tue 01 Sept 17:41 UTC
Automationevaluationupdated 28 Aug 2026

flyte review

Flyte 2 is a Python-facing system for running data, machine-learning, model-serving, and agent workflows on managed compute. This repository contains its Go control-plane work and API definitions, while the full Python SDK lives in a separate repository and the public self-hosted Flyte 2 backend is still described as coming soon.

+57 / 3dstars / 7d
Verdict

Our Flyte checkout built in 231 seconds, but 10 of 159 tests failed when embedded Postgres could not initialize, so the backend is not a clean drop-in on a fresh Debian box. Flyte 2 deserves evaluation by Kubernetes-equipped ML platform teams, especially those already invested in Flyte, but the main README still sends today's production backend users to Union.ai. Wait for the promised open-source backend path if self-hosting Flyte 2 is the purchase criterion, and test stale code bundles plus orphaned Kubernetes resources before a pilot carries important workloads.

We ran it

Lab card: what happened when we ran flyteScreenshot of flyte (flyte.org)
Install✓ · 60s574 packages
Build✓ · 231s
Tests✗ · 140s149 passed · 10 failed of 159 (go test)
Repo1938 files~514,637 lines of source · 24.9 MB · 19 CI workflows · Dockerfile

Answers from our run

Does flyte build from source?

Dependencies installed in 60 seconds (574 packages), and the build succeeded in 231 seconds. We cloned commit 674fd3d into a clean Debian container with 3 CPUs and no project-specific setup.

Do flyte's tests pass?

Not all of them: 149 of 159 passed and 10 failed when we ran the project's own test command (go test). Some failures need services or credentials a bare container does not have.

Who should not use flyte?

Teams that need a supported open-source Flyte 2 backend today: the main README says it is coming soon and points current production users to Union.ai.

What are the alternatives to flyte?

Argo Workflows, Kubeflow Pipelines, Dagster. Our Flyte checkout built in 231 seconds, but 10 of 159 tests failed when embedded Postgres could not initialize, so the backend is not a clean drop-in on a fresh Debian box.

Setup2/5Build passed, but 10 tests failed on embedded Postgres init
Docs4/5Clear quick start and backend architecture, with split readiness
Community5/57,294 stars, same-day push, and current issue activity
Maturity3/5v2.0.44 is active; open backend availability is still pending

Discussed on

  1. hnOpen source ML orchestration tool8 points
  2. hnFlyte Provider for Apache Airflow8 points
  3. hnFlyte: Open-Source Kubernetes-Native ML Orchestrator Implemented in Go7 points
  4. hnFlyte: Advanced workflow orchestration alternative to Apache Airflow3 points

Who it’s for

ML platform teams that want Python tasks to run as tracked, retryable workflows on Kubernetes.
Organizations already able to operate clusters, Postgres, service identities, and container images.
Flyte 1 users evaluating the separate Flyte 2 line before a planned migration.
Contributors working on Flyte 2 services, protocol definitions, generated clients, or controllers.

Who it’s NOT for

Teams that need a supported open-source Flyte 2 backend today: the main README says it is coming soon and points current production users to Union.ai.
Small teams seeking a local scheduler without Kubernetes and Postgres: the backend description uses pods across clusters plus gRPC services backed by PostgreSQL.
Developers who require the full checkout test suite to pass in a plain Debian container: 10 of 159 tests failed in our run after embedded Postgres could not initialize.
Long-lived processes that edit code and then call fork() without a workaround: open issue 7923 reports that the first code bundle can be cached and stale code silently rerun.

Setup reality

Our sandbox installed 574 packages in 60 seconds and built the checkout in 231 seconds. Tests ended with exit 1 after 140 seconds: 149 passed and 10 failed out of 159. The log tail says embedded Postgres could not initialize on ports 15432 and 15433, then shows failures in repository, service, and API packages.

Trying the Python SDK starts with uv pip install flyte, but that SDK is developed in flyteorg/flyte-sdk. Working on this backend also calls for Kubernetes, PostgreSQL, container infrastructure, and several code-generation toolchains. The backend guide lists Go 1.26.5, Buf, Node/npm, Python 3.9 with uv, and Rust.

The measured repository had 1,938 files, about 514,637 source lines, and 24.9 MB checked out. It has 19 CI workflows and a Dockerfile, with no top-level tests directory. Flyte 2 is GA as a product line, but the main README separately says its open-source backend is coming soon; those statements should not be collapsed into one readiness claim.

Flyte 2 covers workflows and model services from Python

The user-facing idea is appealing: define tasks in ordinary Python, run independent calls concurrently with asyncio, and let Flyte package and execute them on managed compute. The same API can describe a workflow or serve a FastAPI model. Runs have tracked results, while the CLI can invoke the same task definition. That puts batch pipelines, model endpoints, and agent jobs under one execution model instead of several schedulers.

The repository boundary needs attention. The main checkout is mostly the Go backend, controllers, and protocol definitions, while the full SDK and development tools live in flyteorg/flyte-sdk. Our scan found 1,938 files and about 514,637 source lines at commit 674fd3d. A developer following only uv pip install flyte is trying the Python surface; a platform engineer reviewing this repository is evaluating a much larger distributed system.

The open backend is promised, while hosted production exists now

Flyte 2 is labeled generally available in the README, but the same page says its open-source backend is coming soon. It directs teams needing a production backend today to Union.ai. That distinction changes the buying decision. General availability describes the Flyte 2 product line and SDK experience; it does not mean the repository currently offers the finished public self-hosting path that every buyer may expect from Flyte 1.

The backend guide describes gRPC Queue, Run, and State services backed by PostgreSQL, with LISTEN/NOTIFY for streaming. Kubernetes primitives schedule tasks as pods, and the design includes multi-cluster routing, service-account identity, and pod log tracking. Its contributor prerequisites span Go 1.26.5, Buf, Node/npm, Python 3.9 with uv, and Rust. This is platform software for a team that already knows how to run clusters and databases.

What happened when we ran it

Our sandbox installed 574 packages in 60 seconds and completed the build in 231 seconds. The repository was 24.9 MB checked out before dependencies. Those steps succeeded in the supplied golang:1.24-bookworm image, using an unprivileged Debian container with 3 CPUs, 8 GB of RAM, and no secrets. The build result confirms the source compiles in that measured environment; it does not stand in for a Kubernetes deployment.

Tests failed with exit code 1 after 140 seconds. Go reported 149 passed and 10 failed out of 159. The log tail says embedded Postgres could not initialize databases through /tmp/embedded-postgres-15432/bin/initdb and the equivalent path on port 15433. Failures then appear in runs/repository/impl, runs/service, and runs/test/api. The tail does not say why initdb failed, so blaming permissions, packages, or the container would be guesswork.

Kubernetes and Postgres are part of the operating model

Flyte's backend does more than queue Python functions. It builds or references container images, creates Kubernetes resources, tracks task state, moves metadata through services, and stores run data in Postgres. A serious pilot therefore needs a cluster namespace, identity rules, image registry access, database backup, logs, and resource limits. The Devbox and Codespaces routes are useful for learning, but neither proves the controls needed for a shared ML platform.

Release v2.0.44 was published August 26, 2026. Its notes include a fix for tasks whose containers exit non-zero and previously relaunched forever, service-to-service authentication, image-builder identity work, and dependency updates. Those changes show that task lifecycle and service boundaries are still receiving direct attention. Pin the chart, binaries, and SDK together during evaluation, then run failure drills for pod exits, controller restarts, and database interruptions.

Stale forks can execute code from before an edit

Open issue 7923 reports a sharp problem for agent repair loops and interactive development. In one long-lived process, run() builds and caches a code bundle, then a later fork() with the same arguments may reuse that bundle even after files change and modules reload. The report says the old code runs without a warning because file contents are not part of the memoization key. It provides a workaround that clears a semi-private cache.

Issue 7926 describes a different control-plane failure on v2.0.42: a run disappeared from the UI while a root TaskAction remained for 17 days and its pod kept being recreated. The reporter had to delete TaskAction resources with kubectl after the orphan blocked a node drain. The trigger was unknown, so this is not a universal behavior claim. It is a reason to alert on orphaned custom resources and document manual termination before adoption.

Current maintenance is strong, but Flyte 2 is still moving

GitHub recorded the last push on August 28, 2026, 7,294 stars, and 165 combined issues and pull requests. Same-day work covered a Helm chart, service settings, multi-cluster support, and controller fixes. Issue 7867 also reports the UI stopping at 5,999 displayed actions for a completed run with more than 10,000 actions, a concrete warning for teams whose workflows fan out heavily.

Flyte has an established name, Apache 2.0 licensing, and LF AI & Data graduation, but this review is about the current Flyte 2 repository boundary. The code is active and the vision is credible. The open backend promise is still a promise in the main README, and our 10 failed tests leave local setup work unresolved. Existing Flyte operators can justify a careful trial; newcomers wanting self-hosted orchestration today should compare Argo, Kubeflow Pipelines, Dagster, and Prefect.

Alternatives

ProjectWhat it isPick it when
Argo Workflows gh↗A Kubernetes-native workflow engine built around containerized DAGs and steps.pick this instead when Kubernetes workflows are the requirement and a Python-first ML abstraction is optional.
Kubeflow PipelinesA Kubernetes pipeline platform aimed at reusable machine-learning components and experiments.pick this instead when your team already uses the Kubeflow ecosystem and its pipeline UI.
DagsterA Python orchestrator centered on data assets, observability, and local development.pick this instead when data assets and developer workflow matter more than pod-level ML execution.
Prefect gh↗A Python workflow orchestrator with local, server, and managed deployment paths.pick this instead when a lighter Python workflow model is preferable to a Kubernetes-first control plane.

What people are saying

  1. [github-trending] flyteorg/flyte

Sources

  1. Flyte 2 README
  2. Flyte 2 backend README
  3. Flyte v2.0.44 release
  4. Issue 7923: stale code bundles after fork
  5. Issue 7926: orphaned TaskAction and recreated pod
  6. Issue 7867: large-run UI action limit

More automation reviews

rclone · lego · OpenCLI · web-access · Karabiner-Elements · WiiUDownloader · the whole board →