This template aims to define an opinionated clean Serverless monorepo microservices architecture.
Head to the install docs!
If you need to setup your CI/CD: docs
- Lerna
- Eslint configuration
- Prettier configuration
- Jest configuration
- Typescript
- Common packages built with babel, with a watch mode
- Selective tests, package and deploy to remove the need to run all the tests and deploy at every commit.
This repository follows the code principles:
- Your codebase should adapt to your team organizations
- DRY (Don't Repeat Yourself)
- Don't deploy all at once
- Safe deployments
In order to respect these guidelines, a good solution is the Monorepo approach. See:
Tips:
- Always explicitely declare dependencies between end services in
package.json
- These dependencies can be of two kinds:
- code dependencies: service B declares service A as a dependency because it needs some code exported by service A;
- deploy dependencies: service B declares service A as a dependency because it needs service A to be deployed before it.
These commands have to be run at the root of the project.
nvm use
: set the version of node set in.nvmrc
yarn
: install node dependencies in all packages;yarn package
: compile the common packages;yarn watch
: launch the compilation of all packages in watch mode;yarn deploy
: deploy all the end services in order;
- Good idea!
Thanks goes to these wonderful people (emoji key):
François Farge 🚇 💻 🤔 📖 |
Adrien Cacciaguerra 💻 🤔 |
Louis Pinsard 💻 |
This project follows the all-contributors specification. Contributions of any kind welcome!