Context model of Cubitt
This model shows the context of the Cubitt framework on a high level.
Glossary of elements
Id | Name | Description |
---|---|---|
Cubitt | The Cubitt framework. | |
NPM | A JavaScript (/Typescript) repository on which some modules of the Cubitt framework will be released. | |
Core Developer | Any developer that develops the core of the Cubitt framework, whether it is front- or backend. | |
Plugin Developer | Any developer that develops plugins to be used with the Cubitt framework. It should be made easy for them to develop these plugins. | |
Users | Anyone who uses the deployed Cubitt framework. | |
Typescript | A superset of JavaScript that allows for strongly typed development while still transpiling to valid JavaScript. http://www.typescriptlang.org/ | |
Vert.X | Vert.x is the development framework that is used for the backend of the Cubitt platform. | |
Docker | A 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.