orchest/orchest

Build data pipelines, the easy way 🛠️

4,136 stars TypeScript 10 components

5-stage pipeline · 10 components

Visual data pipeline orchestration platform with Kubernetes-native deployment

Users interact with the web UI to create pipelines, which are stored and executed by the API service, while the CLI manages cluster operations through Kubernetes CRDs monitored by the controller.

Under the hood, the system uses 3 feedback loops, 3 data pools, 4 control points to manage its runtime behavior.

A 10-component data pipeline. 980 files analyzed. Data flows through 5 distinct pipeline stages.

How Data Flows Through the System

Users interact with the web UI to create pipelines, which are stored and executed by the API service, while the CLI manages cluster operations through Kubernetes CRDs monitored by the controller.

  1. User Interface — React web app provides visual pipeline editor and project management
  2. API Processing — Orchest API service handles pipeline storage, job scheduling, and execution coordination
  3. Cluster Management — CLI writes to Kubernetes CRDs which trigger controller actions for resource provisioning
  4. Image Management — Node agents pull and manage Docker images for pipeline execution environments (config: image-puller-interval, image-puller-policy, image-puller-retries)
  5. Authentication — Auth server validates users and manages access control for all services

System Behavior

How the system operates at runtime — where data accumulates, what loops, what waits, and what controls what.

Data Pools

Kubernetes CRDs (state-store)
Cluster state and configuration managed through custom resources
Pipeline Metadata (database)
Pipeline definitions, job histories, and execution state
Docker Registry (cache)
Container images for pipeline execution environments

Feedback Loops

Delays

Control Points

Technology Stack

React (framework)
Frontend framework for web interfaces
Flask (framework)
Python web framework for API services
Kubernetes (infra)
Container orchestration and cluster management
Go (framework)
Language for Kubernetes controller implementation
TypeScript (framework)
Type-safe JavaScript for frontend development
Cypress (testing)
End-to-end testing framework
Docker (infra)
Container runtime for pipeline execution
asyncio (library)
Asynchronous programming for Python services
Click (library)
Python CLI framework
Material-UI (library)
React component library for UI

Key Components

Package Structure

cypress (tooling)
End-to-end testing suite for the Orchest web application using Cypress framework.
design-system (library)
Shared React component library providing UI elements like Box, Flex, Grid, icons and typography components.
lib-utils (shared)
JavaScript utility library providing HTTP fetcher utilities, type helpers, and validation functions.
orchest-cli (tooling)
Command-line interface for managing Orchest clusters on Kubernetes, handling deployment, updates, and user management.
orchest-api (app)
Core API service handling pipeline execution, job scheduling, project management, and system orchestration.
orchest-webserver (app)
Main web application providing the visual pipeline editor, project management UI, and user interface.
orchest-controller (app)
Kubernetes controller managing Orchest cluster lifecycle, resource provisioning, and deployment orchestration.
auth-server (app)
Authentication service handling user management, login, and authorization for the Orchest platform.
node-agent (app)
Background service managing Docker image operations (pulling, pushing, cleanup) on Kubernetes nodes.

Explore the interactive analysis

See the full architecture map, data flow, and code patterns visualization.

Analyze on CodeSea

Related Data Pipeline Repositories

Frequently Asked Questions

What is orchest used for?

Visual data pipeline orchestration platform with Kubernetes-native deployment orchest/orchest is a 10-component data pipeline written in TypeScript. Data flows through 5 distinct pipeline stages. The codebase contains 980 files.

How is orchest architected?

orchest is organized into 5 architecture layers: CLI Layer, Frontend Layer, API Layer, Infrastructure Layer, and 1 more. Data flows through 5 distinct pipeline stages. This layered structure keeps concerns separated and modules independent.

How does data flow through orchest?

Data moves through 5 stages: User Interface → API Processing → Cluster Management → Image Management → Authentication. Users interact with the web UI to create pipelines, which are stored and executed by the API service, while the CLI manages cluster operations through Kubernetes CRDs monitored by the controller. This pipeline design reflects a complex multi-stage processing system.

What technologies does orchest use?

The core stack includes React (Frontend framework for web interfaces), Flask (Python web framework for API services), Kubernetes (Container orchestration and cluster management), Go (Language for Kubernetes controller implementation), TypeScript (Type-safe JavaScript for frontend development), Cypress (End-to-end testing framework), and 4 more. This broad technology surface reflects a mature project with many integration points.

What system dynamics does orchest have?

orchest exhibits 3 data pools (Kubernetes CRDs, Pipeline Metadata), 3 feedback loops, 4 control points, 3 delays. The feedback loops handle retry and polling. These runtime behaviors shape how the system responds to load, failures, and configuration changes.

What design patterns does orchest use?

6 design patterns detected: Microservices Architecture, Kubernetes Custom Resources, Async Task Processing, Shared Component Library, Error Boundary Pattern, and 1 more.

Analyzed on March 31, 2026 by CodeSea. Written by .