Skip to content

πŸ”Œ FlowyML Plugin System

FlowyML features a powerful native plugin system that allows you to integrate with ANY ML tool β€” MLflow, Kubernetes, AWS S3, and more β€” without external framework dependencies.

🧩 One Framework, Any Infrastructure

Install only what you need. Write infrastructure-agnostic code. Deploy anywhere β€” from your laptop to Vertex AI.


πŸš€ Quick Start

Via CLI

1
2
3
4
5
6
7
8
# Initialize your stack
flowyml stack init --tracker mlflow --store gcs --orchestrator vertex_ai

# Install configured plugins
flowyml stack install

# Verify everything is ready
flowyml stack validate

Via Python

1
2
3
4
5
6
# Your code stays infrastructure-agnostic
from flowyml.plugins import start_run, log_metrics, save_model

start_run("training")
log_metrics({"accuracy": 0.95})
save_model(model, "classifier")  # Goes wherever config says

Via YAML (flowyml.yaml)

plugins:
  experiment_tracker:
    type: mlflow
    tracking_uri: http://localhost:5000
  artifact_store:
    type: gcs
    bucket: my-ml-artifacts
  orchestrator:
    type: vertex_ai
    project: my-gcp-project
    region: us-central1

βš–οΈ Which Plugin Do I Need?

I want to... Plugin Type Recommended Plugin
Track experiments & metrics Experiment Tracker mlflow or wandb
Store artifacts in the cloud Artifact Store gcs (GCP) or s3 (AWS)
Run pipelines on cloud Orchestrator vertex_ai (GCP) or sagemaker (AWS)
Push Docker images Container Registry gcr (GCP) or ecr (AWS)
Register models Model Registry vertex_model_registry or sagemaker_model_registry
Deploy models as endpoints Model Deployer vertex_endpoint or sagemaker_endpoint

🎯 Key Benefits

πŸ“¦ No Framework Overhead

Install only what you need. Each plugin brings only its direct dependencies (e.g., mlflow, boto3).

πŸ”§ Three Ways to Configure

Use CLI commands, Python code, or YAML config files β€” whatever fits your workflow.

πŸ”Œ Auto-Discovery

Publish plugins as PyPI packages with entry points β€” FlowyML discovers and registers them automatically.


πŸ“¦ Available Plugins

πŸ”¬ Experiment Trackers

Plugin Description Packages
mlflow MLflow tracking & model registry mlflow
wandb Weights & Biases tracking wandb
neptune Neptune.ai tracking neptune
tensorboard TensorBoard visualization tensorboard

πŸ’Ύ Artifact Stores

Plugin Description Packages
gcs Google Cloud Storage βœ… google-cloud-storage, gcsfs
s3 AWS S3 βœ… boto3, s3fs
azure_blob Azure Blob Storage azure-storage-blob, adlfs

🐳 Container Registries

Plugin Description Packages
gcr Google Artifact Registry βœ… google-cloud-artifact-registry
ecr AWS ECR βœ… boto3
acr Azure Container Registry azure-containerregistry

☁️ Orchestrators

Plugin Description Packages
vertex_ai Google Vertex AI Pipelines βœ… google-cloud-aiplatform
sagemaker AWS SageMaker Pipelines βœ… sagemaker
kubernetes Kubernetes kubernetes
airflow Apache Airflow apache-airflow

🏷️ Model Registries & Deployers

Plugin Description
vertex_model_registry Vertex AI Model Registry βœ…
sagemaker_model_registry SageMaker Model Registry βœ…
vertex_endpoint Vertex AI Endpoints βœ…
sagemaker_endpoint SageMaker Endpoints βœ…

πŸ—οΈ Architecture

The plugin system is built on three core components:

1️⃣ Plugin Registry

The central hub that manages all available plugins:

1
2
3
4
5
6
7
from flowyml.plugins import list_plugins, get_plugin

# List all available plugins
plugins = list_plugins()

# Get a specific plugin instance
tracker = get_plugin("mlflow", tracking_uri="http://localhost:5000")

2️⃣ Base Plugin Classes

Consistent interfaces for each plugin type:

1
2
3
4
5
6
from flowyml.plugins.base import (
    ExperimentTracker,
    ArtifactStorePlugin,
    OrchestratorPlugin,
    ContainerRegistryPlugin,
)

3️⃣ Stack Configuration

YAML-based infrastructure definitions with environment variable support:

1
2
3
4
5
plugins:
  artifact_store:
    type: s3
    bucket: ${AWS_BUCKET}
    region: ${AWS_REGION}

🎯 Entry Point Discovery

Plugins can register themselves automatically via Python entry points:

1
2
3
# In your plugin's pyproject.toml
[project.entry-points."flowyml.plugins"]
my_tracker = "my_package.plugins:MyCustomTracker"

FlowyML will auto-discover and register your component!

πŸ“¦ Unified Plugin Management

# List available plugins
flowyml plugin list

# Install a plugin
flowyml plugin install mlflow

# Show plugin info
flowyml plugin info mlflow

# Search for plugins
flowyml plugin search kubernetes

πŸ“š Deep Dive Guides

βš™οΈ Stack Configuration

Configure infrastructure in YAML. Multi-stack for dev/staging/prod.

β†’ Stack Configuration Guide

πŸ“¦ Native Plugins

Complete guide to every built-in plugin with setup instructions.

β†’ Native Plugins Guide

πŸ”§ Custom Plugins

Build your own plugins with the extensible base classes.

β†’ Creating Plugins Guide

🎯 Practical Examples

Copy-paste recipes for K8s, GCP, AWS, and hybrid stacks.

β†’ Practical Examples

πŸ”€ Type-Based Routing

Auto-route Models, Datasets, and Metrics to the right stores.

β†’ Type Routing Guide

🏭 Production Tutorial

End-to-end: Docker, resources, stacks, and remote execution.

β†’ Production Pipeline Tutorial


πŸ†˜ Need Help?