Skip to content

Architecture

Fairway is designed to be infrastructure-agnostic. It uses a Decoupled Worker pattern throughout.

Deployment Models

1. HPC (Slurm)

In a traditional HPC environment, Fairway runs as a Slurm job with optional Spark cluster provisioning.

graph TD
    User["User"] -->|fairway submit| CLI["Fairway CLI"]
    CLI -->|sbatch| Driver["Driver Job (Compute Node)"]

    subgraph "Slurm Job (Driver)"
        Driver -->|fairway spark start| SparkMaster["Spark Master"]
        SparkMaster -->|srun| Workers["Spark Workers"]
        Driver -->|fairway run| Pipeline["Ingestion Pipeline"]
    end

    Workers -.- Pipeline
  • Orchestrator: fairway submit (generates and submits Slurm job script).
  • Worker: fairway run (provisions Spark cluster inside the allocation).
  • Resource: Configurable Slurm allocation (time, memory, CPUs).