A generator for a systemic microservice.
An easy and unopinionated implementation of a microservice fostering an inner Hexagonal Architecture (Ports and Adapters).
- 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).
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
- 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.
Generate your new systemic project: a white canvas into which creating the components you do prefer according to your specifi business logic.
mkdir my-service
cd my-service
yo systemic
There is an option that can be passed to the generator at execution time using the flag --showcase
.
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.
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):
- versioning.
- workflows.
- testing.
- systemic ecosystem npm handy modules (e.g. systemic-rabbitmq - systemic-mongdb).
More info in the generated ReadMe.
Consider following these guidelines if you want to contribute:
-
Feature: https://github.com/guidesmiths/generator-systemic/issues/new
-
Bug: https://github.com/guidesmiths/generator-systemic/issues/new
-
Pull Request: https://github.com/guidesmiths/generator-systemic/blob/master/.github/pull_request_template.md
MIT © Guidesmiths Ltd