This template aims to define an opinionated clean Serverless monorepo microservices architecture.
If you use this repo, star it ✨
Head to the install docs!
If you need to setup your CI/CD: docs.
- Nx
- 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 explicitly 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;yarn test-circular
: check if there are circular dependencies in the code base;
- Good idea!
Thanks goes to these wonderful people (emoji key):
François Farge 🚇 💻 🤔 📖 |
Adrien Cacciaguerra 💻 🤔 🚇 |
Louis Pinsard 💻 |
guillaumeduboc 💻 |
Maxime Vivier 💻 |
Guillaume Lagrange 💻 |
Pierre Milliotte 💻 |
Thomas Aribart 📖 |
Charles Géry 💻 |
Stan Hannebelle 💻 |
Quentin Hello 🚇 |
This project follows the all-contributors specification. Contributions of any kind welcome!