/generator-systemic

A yeoman-based template to generate a systemic microservice

Primary LanguageJavaScriptMIT LicenseMIT

CI CD Maintainability Test Coverage

GENERATOR-SYSTEMIC

A generator for a systemic microservice.

Systemic microservice

An easy and unopinionated implementation of a microservice fostering an inner Hexagonal Architecture (Ports and Adapters).

Main concepts

  • Systemic: dependecy injection orchestrator in charge of correctly start and stop the different components of the microservice.
  • Systemic microservice: a system composed of different sub-systems --> components and sub-components.
  • Components and sub-components: minimal responsability elements (Adapters) of the system in charge of dealing with a given Port (generally speaking).

INSTALLATION

First, install Yeoman and generator-systemic using npm (we assume you have pre-installed node.js).

npm install -g yo
npm install -g generator-systemic

Getting To Know Yeoman

  • Yeoman has a heart of gold.
  • Yeoman is a person with feelings and opinions, but is very easy to work with.
  • Yeoman can be too opinionated at times but is easily convinced not to be.
  • Feel free to learn more about Yeoman.

USAGE

Generate your new systemic project: a white canvas into which creating the components you do prefer according to your specifi business logic.

More info

mkdir my-service
cd my-service
yo systemic

White canvas VS showcase

There is an option that can be passed to the generator at execution time using the flag --showcase.

--showcase flag NOT used

Generates your new systemic project: a white canvas into which creating the components you do prefer according to your specific business logic.

More info in the generated ReadMe.

--showcase flag used

Generates your new systemic project with extra components: a not so white canvas with a given business logic already in place to help you better understand how to handle components (and sub-components):

More info in the generated ReadMe.

CONTRIBUTING

Consider following these guidelines if you want to contribute:

LICENSE

MIT © Guidesmiths Ltd