Skip to content

Starter template for NestJS microservices with ready-to-use ClientProxy setup, example message patterns, RxJS support, and modular architecture. Quickly bootstrap scalable, maintainable microservice projects with TypeScript and NestJS.

Notifications You must be signed in to change notification settings

theguybyte/nestjs-microservices-init

Repository files navigation

nestjs-microservice-challenge

Monorepo minimal listo para producción con 2 apps NestJS:

  • Gateway HTTP (puerto 3000)
  • Users microservicio TCP (puerto 4001)

Arranque

npm install
npm run dev:all

Pruebas manuales

# Listar (Gateway -> Users)
curl -s http://localhost:3000/api/users | jq

# Crear
curl -s -X POST http://localhost:3000/api/users \
  -H "Content-Type: application/json" \
  -d '{"name":"Ada"}' | jq

# Obtener 1
curl -s http://localhost:3000/api/users/1 | jq

Notas

  • El API Gateway expone una RESTFul API

  • El microservicio de usuario no tiene acceso directo desde internet.

  • El MS de usuario se comunica con al API GW a traves de TCP (no levanta un web-server)

  • Si el servicio de Users recibe mucha carga podemos escalarlo independientemente.

  • Este enfoque es mas seguro porque todo pasa por el GW

  • CORS habilitado en Gateway.

  • Validación con class-validator en Gateway y revalidación en Users.

  • Si findOne no existe, Gateway responde 404.

  • En la seccion de scripts de package.json es donde está la mágia de la orquestación:

    • start:gateway y start:users son comandos que se usarian en producción. Esto es mucho más rapido y eficiente que usar ts-node.

About

Starter template for NestJS microservices with ready-to-use ClientProxy setup, example message patterns, RxJS support, and modular architecture. Quickly bootstrap scalable, maintainable microservice projects with TypeScript and NestJS.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •