Skip to content

projectcontinuum/continuum-platform-core

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

224 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸš€ Build visual, crash-proof workflows in your browser β€” open source, cloud-native, and extensible.
Kotlin 69.9% Eclipse Theia Temporal.io React Flow
Project Continuum Logo

Project Continuum

Visual workflows that actually run β€” and survive.
Inspired by KNIME. Made for the cloud. Built to never die.
Quick Start Architecture Contribute License
No desktop. No install. Just resilient workflows, in your browser.

🌐 Ecosystem

Project Continuum is split across several focused repositories:

Repository Description
Continuum (this repo) Core backend β€” API server, worker framework, shared libraries
continuum-workbench Browser IDE β€” Eclipse Theia + React Flow workflow editor
continuum-feature-base Base analytics nodes β€” data transforms, REST, scripting, anomaly detection
continuum-feature-ai AI/ML nodes β€” LLM fine-tuning with Unsloth + LoRA
continuum-feature-template Template β€” scaffold your own custom worker with nodes

πŸ“¦ What's In This Repo

This monorepo contains the core backend infrastructure for Project Continuum:

Module Purpose
continuum-commons Shared library β€” node model base classes, data types, Parquet/S3 utilities
continuum-worker-springboot-starter Spring Boot starter for building workers β€” auto-registers nodes with Temporal
continuum-api-server REST API server β€” manages workflows, node registry, executions
continuum-message-bridge Kafka-to-MQTT bridge β€” streams execution events to the browser
continuum-avro-schemas Shared Avro schemas for Kafka messages
continuum-knime-base KNIME compatibility layer (experimental)

Looking for workflow nodes? See continuum-feature-base and continuum-feature-ai.

Looking for the UI? See continuum-workbench.


πŸ”₯ Why It's Cool

  • Truly cloud-native β€” not a desktop app ported to the web. Built from day one for browsers, containers, and distributed infrastructure.
  • Crash-proof by design β€” powered by Temporal, workflows survive process crashes, network failures, and restarts without losing a single step.
  • Watch it happen live β€” every node execution streams back to your browser in real time via Kafka β†’ MQTT. No refresh. No polling.
  • Data stays fast β€” nodes pass Apache Parquet tables, not JSON blobs. Columnar, compressed, query-ready from the start.
  • Extend without breaking β€” add new capabilities by deploying new workers, not by touching existing ones. Zero downtime. Zero coupling.

🎬 See It In Action

Sensor Anomaly Detection Workflow
↑ A real workflow: streaming sensor data β†’ anomaly detection β†’ alert β€” all drag-and-drop.

πŸ’‘ The Idea

Start with a drop. One node. Two. Transform. Branch. Loop.

Each step tiny. But at the end β€” it's a river. A request turned system. A click turned outcome.

Most tools look good. Then break. We want graphs that keep running β€” even if Kafka dies, even if S3 lags, even if your code crashes.


✨ Features at a Glance

Feature Description
🎨 Browser-Native Canvas Drag-and-drop workflow editor β€” real IDE feel, zero install
πŸ” Indestructible Execution Workflows survive crashes, restarts, and infrastructure failures
⚑ Live Streaming Updates Watch your workflow execute step-by-step in real time
πŸ“Š Columnar Data Passing Parquet tables between nodes β€” fast, query-ready
πŸ§ͺ AI / ML Ready Train models with Unsloth, run inference, all inside your flow
🐳 Self-Hostable Docker Compose up and you're running

🧱 How It Works

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    BROWSER                           β”‚
β”‚   Eclipse Theia + React Flow (drag & drop canvas)   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                       β”‚ WebSocket / REST
                       β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚              BACKEND (Kotlin + Spring Boot)          β”‚
β”‚         Typed, clean, contract-safe API server       β”‚
β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
       β”‚                              β”‚
       β–Ό                              β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”          β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   Temporal   β”‚          β”‚   Kafka β†’ MQTT (WS)   β”‚
β”‚  Durable     β”‚          β”‚   Live event stream    β”‚
β”‚  Execution   β”‚          β”‚   step-by-step updates β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜          β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
       β”‚
       β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚         Storage: AWS S3 / MinIO (local dev)         β”‚
β”‚         Format: Apache Parquet β€” columnar, fast     β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

The Stack

Layer Technology Why
Canvas Eclipse Theia + React Flow Full IDE experience in the browser
Engine Temporal Durable execution, auto-retry, infinite scale
Events Kafka β†’ MQTT over WebSockets Real-time step-by-step workflow updates
Data Apache Parquet Fast, columnar, query-ready inter-node data
Storage AWS S3 / MinIO Open, portable, no vendor lock-in
Backend Kotlin + Spring Boot Type-safe, clean, battle-tested
Resilience Temporal Fails? Retries. Crashes? Recovers. Forever.
Flow Control Output null on a port = flow stops Simple guard logic. Real loops coming.

🧬 AI Training Workflows

Unsloth AI Training Workflow
↑ Fine-tune LLMs with Unsloth β€” right inside your workflow graph.

πŸš€ Quick Start

Option A: IntelliJ IDEA (Recommended)

🧠 Zero-config IDE setup β€” This repo ships with shared IntelliJ IDEA Run Configurations in the .run/ directory. Just open the project and they'll be auto-detected in your Run/Debug toolbar β€” no manual setup needed.

Included configurations: ApiServer, MessageBridge

  1. Open the project in IntelliJ IDEA
  2. Start infrastructure:
    cd docker && docker compose up -d
  3. Select a run configuration from the toolbar and hit ▢️ β€” start ApiServer and MessageBridge
  4. Start a feature worker from one of the feature repos (e.g., continuum-feature-base)
  5. Start the browser UI from continuum-workbench
  6. Open http://localhost:3002 and start building workflows!

Option B: Command Line

# Clone the repo
git clone https://github.com/projectcontinuum/Continuum.git
cd Continuum

# Spin up infrastructure (Temporal, Kafka, MinIO, Mosquitto)
cd docker
docker compose up -d

# Build & run the backend
./gradlew :continuum-api-server:bootRun --args='--server.port=8080'

# (In another terminal) Build and run Message Bridge (Kafka β†’ MQTT)
./gradlew :continuum-message-bridge:bootRun --args='--server.port=8082'

# Start a feature worker from a feature repo (e.g., continuum-feature-base)
# See: https://github.com/projectcontinuum/continuum-feature-base

# Start the browser UI from the workbench repo
# See: https://github.com/projectcontinuum/continuum-workbench

πŸ’‘ Tip: Pass any spring.* property via --args:

./gradlew :continuum-api-server:bootRun --args='--spring.profiles.active=dev --server.port=9090'

πŸ’‘ Full setup guide coming soon. For now β€” explore, break things, open issues.


🧩 Architecture Philosophy: Workers, Not Monoliths

Don't bloat. Distribute.

Most workflow engines pack every capability into a single worker β€” and when it breaks, everything breaks.

Continuum takes a different path:

  • One worker = one set of capabilities. A worker that handles REST calls doesn't need to know about chemistry or AI training.
  • Add capabilities by adding workers β€” not by inflating existing ones. Need RDKit nodes? Spin up an RDKit worker. Need Unsloth? That's its own worker. The core stays untouched.
  • Zero downtime for everyone else. Deploy, update, or crash a worker β€” other workers keep running. No shared fate.
  • Anyone can host a worker. You can write and run your own worker offering custom nodes β€” plug it into the shared registry, and the platform discovers it automatically.
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Base Worker β”‚  β”‚  AI Worker β”‚  β”‚ Chem Worker β”‚  β”‚ Your Worker  β”‚
β”‚  REST, CSV  β”‚  β”‚  Unsloth   β”‚  β”‚   RDKit    β”‚  β”‚  Anything!   β”‚
β”‚  Transform  β”‚  β”‚  Inference β”‚  β”‚  Molecules β”‚  β”‚  Your nodes  β”‚
β””β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜
      β”‚               β”‚               β”‚                 β”‚
      β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                              β–Ό
                    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                    β”‚  Shared Registry  β”‚
                    β”‚  (Auto-discovery) β”‚
                    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

This is the vision: a marketplace of workers β€” lightweight, independent, community-driven.


πŸ—ΊοΈ Roadmap

  • Drag-and-drop visual workflow editor
  • Durable execution with Temporal
  • Live streaming updates via Kafka β†’ MQTT
  • Parquet-based data passing between nodes
  • Base node library (Transform, REST, Branch, etc.)
  • Unsloth AI training node
  • IntelliJ IDEA shared run configurations β€” zero-config dev setup
  • Multi-repo architecture β€” feature nodes developed independently as separate workers
  • πŸ” True while / for loops with condition builder
  • πŸ–₯️ Electron standalone β€” run Continuum as a native desktop app, no browser required
  • πŸ§ͺ More RDKit chemistry nodes β€” full RDKit integration for molecular workflows
  • πŸ”₯ PyTorch nodes β€” training, inference, and model management natively in your flow
  • πŸ€– Full AI training node suite (Unsloth ecosystem)
  • πŸ”Œ Plugin store β€” Slack, Stripe, Databases, AI services
  • πŸ™‹ Human-in-the-loop β€” interactive workflows with approval gates, manual review steps, and pause/resume
  • πŸ› Visual debugger with timeline replay
  • πŸ‘₯ Auth, multi-tenancy & RBAC β€” authentication, role-based access control, and approval workflows baked in
  • πŸ—οΈ Multi-worker ecosystem β€” bring your own worker with custom nodes, auto-discovered via shared registry, zero downtime for others
  • πŸ“’ Central node repository β€” a single registry where all workers publish their available nodes, making them discoverable and composable across the platform
  • ☸️ Helm chart β€” production-ready Kubernetes deployment for horizontal scaling
  • πŸ“¦ Zero-config self-host with docker compose up

πŸ“Ί YouTube Channel β€” Coming Soon

We're launching a dedicated YouTube channel with deep dives, demos, and architecture walkthroughs. Subscribe to stay in the loop:

  • πŸŽ₯ Live workflow builds β€” watch real pipelines come together from scratch
  • 🧠 Architecture breakdowns β€” how Temporal, Kafka, and the worker ecosystem fit together
  • πŸ’¬ Community discussions β€” Q&A, roadmap talks, and contributor spotlights

πŸ”” Channel link dropping soon β€” star the repo so you don't miss it!


🀝 Contribute

We don't want perfect. We want working.

If you see the gap β€” fill it. Check out the Issues page, pick something, and send a PR.

First time? Look for issues labeled good first issue. We're friendly.


πŸ“„ License

Apache 2.0 β€” open, safe, patent-protected.


πŸ”— Related Repositories

Repository Description
Continuum (this repo) Core backend β€” API server, worker framework, shared libraries
continuum-workbench Browser IDE β€” Eclipse Theia + React Flow workflow editor
continuum-feature-base Base analytics nodes β€” data transforms, REST, scripting, anomaly detection
continuum-feature-ai AI/ML nodes β€” LLM fine-tuning with Unsloth + LoRA
continuum-feature-template Template β€” scaffold your own custom worker with nodes

Welcome. Break it. Fix it. Flow with us.

About

No-code workflow engine for ML, chem, ETL. Drag-drop nodes, human-in-loop pauses, Temporal backend.

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors