DASFE

The DASFE design pattern stands for Data Acquisition, Selection, Feedback and Evaluation. In Marvin, the DASFE pattern is represented by the image below. Each box, which we call an Action, holds code written by the user.

Toolbox

The toolbox helps the user develop, test, and run their built engine. There are separate toolboxes for each language. For example, the Python Toolbox.

Engine

The Engine is the Marvin application, the result of user's implementation, including code, datasets(artifacts), models, etc. We have some engine examples on github and you could install them like described in Running an example engine

Engine Executor

The engine executor is the component responsible for coordinating execution of the steps (Actions) in a Marvin engine. The engine-executor is able to communicate with engines through the gRPC protocol.

Artifacts

Datasets and model(s) are shared between Engine Actions, which are persisted and versioned.

Notebook extension

In order to facilitate development of the engine, Jupyter Notebook is integrated into Toolbox. The Marvin notebook extension allows the user to write their code in Notebooks and push updates directly to the Actions.