GitHub Hot Board

GitHub Hot Board · 저장소 아카이브

Denrox/nestjs-microservices-example

A working example of microservice architecture implementation using nestjs framework. (소개는 저장소 자체 문서에서 왔습니다.)

데이터 기준 October 24Denrox

최고 순위

#47

라이브 마일스톤 · 돌파 중계

996

누적 스타

274

포크 수

3

최근 30일 기록 일수

README에 뱃지를 붙여보세요 · Denrox/nestjs-microservices-example[![README에 뱃지를 붙여보세요](https://git.vaiox.xyz/api/badge/Denrox/nestjs-microservices-example.svg)](https://git.vaiox.xyz/ko/repo/Denrox/nestjs-microservices-example)

프로젝트 문서

This repository shows how you can build API with microservice architecture using nestjs

Features of this example

This example is basically an API for some task manager application. It provides a possibility to perform sign up users, confirm user's emails, manage user's tasks.

Running the example with docker-compose

Execute docker network create infrastructure && cp .env.example .env && docker compose up -d from the root of the repository

Accessing the API itself and swagger docs for the API

  • Once you launch the API it will be accessible on port 8000.
  • Swagger docs for the API will be accessible locally via URI "http://localhost:8000/api"

Launch services for integration testing (using docker-compose)

  • Execute sudo vim /etc/hosts and add line 127.0.0.1 db to it. This is a temporary step, it will not be required since new update.
  • Execute cp .env.example .env && cp .env.test.example .env.test
  • Execute docker compose -f ./docker-compose.test.yml up -d from the root of the repository
  • Run cd ./gateway && npm install && npm run test from the root of this repo

Brief architecture overview

This API showcase consists of the following parts:

  • API gateway
  • Token service - responsible for creating, decoding, destroying JWT tokens for users
  • User service - responsible for CRUD operations on users
  • Mailer service - responsible for sending out emails (confirm sign up)
  • Permission service - responsible for verifying permissions for logged in users.
  • Tasks service - responsible for CRUD operations on users tasks records
  • The service interact via TCP sockets

This example uses a SINGLE database (MongoDB) instance for all microservices. This is not a correct point, the correct way is to use a separate DB instance for every microservice. I used one DB instance for all microservices to simplify this example.

현재 순위

  • 47

    라이브 마일스톤 · 돌파 중계

    996 스타 · 274 fork · 다음 라인까지

    마일스톤 →

최근 30일 추이

누적 스타 추이

순위 추이

같은 보드의 이웃 랭커 · 마일스톤

← 랭킹으로