Here are the components
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.
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
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.
Datasets and model(s) are shared between Engine Actions, which are persisted and versioned.
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.