LouisPinsard / swarmion-template

An opinionated Serverless monorepo microservices architecture

Home Page:https://www.swarmion.dev

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Serverless Monorepo Microservices Template

All Contributors

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

If you use this repo, star it ✨

Install

Head to the install docs!

If you need to setup your CI/CD: docs.

Features

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

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

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;
  • yarn test-circular: check if there are circular dependencies in the code base;

Adding a new service

  • Good idea!

Other docs

Contributors ✨

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!

About

An opinionated Serverless monorepo microservices architecture

https://www.swarmion.dev

License:MIT License


Languages

Language:TypeScript 67.8%Language:JavaScript 28.9%Language:Shell 2.5%Language:HTML 0.8%