MakerLab logo MakerLab

Architecture

Here is a simple illustration of how DETI MakerLab looks like:

DML Architecture

Although not an extensive diagram, hopefully it will empower the reader with a top-level understanding of the DML’s internals.

Components

The components illustrated above are documented within each one’s page. Yet, a succinct description of each component will be provided for completeness’ sake.

API provider

This is the component responsible for programmatically interfacing with the outside world — with apps or the lab’s servant, for example.

Wiki Engine

Responsible for handling the wiki-like internal structure, managing revisions, and validating (authentication-wise) the access to wiki pages.

For more information see here.

App

The app provides for a more user-centered experience within the lab and have all necessary tools to start using it’s features as fast as possible.

For more information see here.

Index Manager

Answers performance concerns that could rise due to our data organization model (which in turn is based on requirements such as the use of a wiki-based system). Facades the interaction with an indexer, abstracting the build of queries that would otherwise require extensive knowledge about the indexer’s internals.

For more information see here.

Wiki Parser

The component responsible for processing the (unstructured) structure of the wiki into a more well-defined form.

It handles the different stages of organization discussed in data-structure.

Network Manager

Answers to the network matters of the lab. Abstracts the issuing of VLANs and the creation/removal of VMs.

For more information see here.

Plugins

Should be as decoupled as possible from the rest of the system.

They should be hot-swappable, without affecting the overall, basic functionality of the system. They should be the main way of expanding the platform to new possibilities of interactions/services.

An example of a plugin is Makerlab’s servant.