Application Structure

The application is divided into four layers.

Module routes

The outermost layer that specifies the REST API of the backend and leaves all the processing tocontrollers. It handles everything HTTP-specific, marshals exceptions into responses.

Route

Purpose

/workspace

create separate ML environments within kaos

/notebook

create a hosted Jupyter notebook with kaos

/data

upload datasets for usage within kaos

/train

deploy training(s) based on source code, data and parameters

/inference

deploy an endpoint with a trained model

/internal

callback for deploying pipelines

Module controllers

It contains all the high-level business logic of the application.

Module services

It encapsulates all low-level mechanics and exposes an abstracted interface, so that the controllers manipulate with kaos-specific concepts without any low-level logic.

Module clients

A thin wrapper over Pachyderm internal storage and pipeline clients. It organizes access to Pachyderms' subsystems, decodes the responses and provides error handling.