Skip to content

guillaumeduboc/serverless-monorepo-microservices-template

 
 

Repository files navigation

Serverless Monorepo Microservices Template

All Contributors

This template aims to define an opinionated clean Serverless monorepo microservices architecture.

Install

Head to the install docs!

If you need to setup your CI/CD: docs

Features

  • 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.

Code principles

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.

Commands

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;

Adding a new service

  • Good idea!

Other docs

Contributors ✨

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!

About

A template aimed to define an opinionated clean Serverless monorepo microservices architecture

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 70.1%
  • JavaScript 27.2%
  • Shell 1.7%
  • HTML 1.0%