Context model of Cubitt

This model shows the context of the Cubitt framework on a high level.

800

Cubitt Context Diagram

Glossary of elements

IdNameDescription
CubittThe Cubitt framework.
NPMA JavaScript (/Typescript) repository on which some modules of the Cubitt framework will be released.
Core DeveloperAny developer that develops the core of the Cubitt framework, whether it is front- or backend.
Plugin DeveloperAny developer that develops plugins to be used with the Cubitt framework. It should be made easy for them to develop these plugins.
UsersAnyone who uses the deployed Cubitt framework.
TypescriptA superset of JavaScript that allows for strongly typed development while still transpiling to valid JavaScript. http://www.typescriptlang.org/
Vert.XVert.x is the development framework that is used for the backend of the Cubitt platform.
DockerA platform that allows for deployment independent of the deployment environment. https://www.docker.com/

Rationale

It was a requirement that it should be easy to develop plugins independent of the core Cubitt framework, this is why they are listed as a separate stakeholder.

We chose to develop in JavaScript for the proof of concept, so we could at least reuse mayor parts of our code in both the server and the client (web-browser).

We specifically chose for Typescript as it enables development in a strongly-typed language while still having the deployment benefits of JavaScript. By choosing for Typescript/JavaScript, NPM became a logical release platform as it is the main open source JavaScript repository.

Vertx is used as a development platform since it provides an Actor model implementation, horizontal scalability, and javascript language support.

Finally we chose Docker because it allows for easy deployment on different operating systems and scaling of our micro service architecture.