Boost Academy
FormaciónEvaluacionesPerfil
Volver
  • En directo

NestJS — Avanzado

10h de clase en directo·HACK A BOSS·Español

Skills que aprenderás

  • NestJS

Convocatorias

Necesitas un plan activo

Para acceder a los cursos en directo necesitas un plan activo. Estamos trabajando para que los planes estén disponibles pronto — ¡mantente atento!

No hay convocatorias abiertas ahora mismo, pero no te pierdas la oportunidad: guarda este curso y te avisamos en cuanto se abra una convocatoria.

Descripción

Objetivos

Temario

Requisitos técnicos

Conocimientos previos

Detalles de la convocatoria

Recursos

No hay recursos disponibles todavía para esta convocatoria

Dirigido a desarrolladores con experiencia consolidada en NestJS que necesitan dar el salto a entornos de producción exigentes, este curso aborda los patrones y decisiones de ingeniería que distinguen una API funcional de un sistema mantenible y escalable. A lo largo de diez horas los participantes explorarán cómo modelar aplicaciones complejas con principios de Domain-Driven Design, cuándo y cómo adoptar CQRS con Event Sourcing, de qué manera orquestar ecosistemas de microservicios con múltiples transportes tolerantes a fallos y qué estrategias de seguridad avanzada aplicar según los requisitos de cada contexto. El resultado concreto es que cada participante saldrá con una aplicación NestJS reestructurada, perfilada, documentada automáticamente, cubierta por tests en un pipeline CI/CD real y preparada para operar de forma distribuida con caché consistente y trazabilidad completa de errores.

Al finalizar el curso el participante será capaz de:

  1. Describir los principios de Domain-Driven Design aplicados a NestJS y los criterios que determinan cuándo CQRS con Event Sourcing aporta valor frente a cuándo introduce complejidad innecesaria.
  2. Comparar las estrategias de autenticación y autorización disponibles en NestJS (JWT, OAuth2, RBAC, ABAC), identificando las ventajas y limitaciones de cada una ante distintos conjuntos de requisitos de seguridad.
  3. Diseñar la arquitectura modular de una aplicación NestJS con separación estricta de capas de dominio, aplicación e infraestructura, sin dependencias cruzadas entre ellas.
  4. Implementar un sistema de microservicios NestJS con al menos dos transportes distintos, configurando mecanismos de retry y dead-letter para garantizar comunicación tolerante a fallos.
  5. Optimizar el rendimiento de una API NestJS mediante profiling, reduciendo la latencia media en al menos un 30 % respecto a la línea base, e incorporar una estrategia de caché distribuida con Redis y política de invalidación explícita.
  6. Automatizar la suite completa de tests (unitarios, integración y e2e) integrada en un pipeline CI/CD con cobertura mínima del 80 % como gate de merge, y la generación de documentación OpenAPI versionada sincronizada con el código en cada despliegue.
  7. Integrar un sistema de manejo de errores globales con filtros de excepción jerarquizados que diferencien errores de dominio, infraestructura y cliente, acompañados de logging estructurado y trazabilidad distribuida end-to-end.

Bloque 1 — Arquitectura avanzada con DDD y CQRS

El bloque arranca situando al participante ante la pregunta de cómo organizar una aplicación NestJS cuando la complejidad del dominio supera las convenciones por defecto del framework. Se estudian los principios de Domain-Driven Design —agregados, entidades, value objects, repositorios y servicios de dominio— y su traducción directa a módulos NestJS con capas de dominio, aplicación e infraestructura completamente desacopladas. A continuación se analiza el patrón CQRS junto con Event Sourcing: cuándo la separación de comandos y consultas resuelve problemas reales de consistencia y escalabilidad, y cuándo introduce una sobrecarga operacional que no se justifica. El bloque concluye con un ejercicio de evaluación crítica en el que cada participante argumenta la decisión de adoptar o descartar CQRS para un caso de negocio concreto.

Bloque 2 — Microservicios, resiliencia y seguridad avanzada

Este bloque aborda la transición de un monolito NestJS a un ecosistema de microservicios. Se configura un sistema con al menos dos transportes distintos —por ejemplo TCP y Redis o Kafka—, prestando especial atención a los mecanismos de resiliencia: políticas de retry con backoff exponencial y colas dead-letter para mensajes no procesables. Sobre esa base distribuida se trabaja la gestión del estado compartido mediante Redis Cache Manager, diseñando una política de invalidación explícita que evite inconsistencias entre instancias. La segunda mitad del bloque se dedica a seguridad: se comparan en profundidad JWT, OAuth2, RBAC y ABAC en el contexto de NestJS, y se implementa la estrategia seleccionada sobre el sistema microservicios ya construido.

Bloque 3 — Rendimiento, calidad y documentación en producción

El bloque final integra las piezas necesarias para llevar el sistema a producción con garantías. Se parte del profiling de la API —identificando cuellos de botella reales con herramientas como Clinic.js o el profiler de Node.js— para aplicar optimizaciones medibles con un objetivo cuantitativo de reducción de latencia. Seguidamente se diseñan filtros de excepción jerarquizados que separan errores de dominio, de infraestructura y de cliente, enriquecidos con logging estructurado y trazabilidad distribuida mediante correlation IDs o estándares como OpenTelemetry. El bloque cierra con la automatización de dos flujos de calidad: la suite de tests —unitarios, de integración y e2e— integrada en un pipeline CI/CD con el gate de cobertura mínima del 80 %, y la generación continua de documentación OpenAPI versionada y sincronizada con los DTOs validados en cada despliegue.

  • Node.js 20 LTS o superior y npm/pnpm instalados en local.
  • NestJS CLI (npm i -g @nestjs/cli) en versión 10 o superior.
  • Docker Desktop (o Docker Engine + Compose) para levantar Redis, Kafka o RabbitMQ según el ejercicio de microservicios.
  • Acceso a un repositorio Git con capacidad de configurar pipelines CI/CD (GitHub Actions, GitLab CI o equivalente).
  • Editor con soporte TypeScript (VS Code recomendado con las extensiones ESLint y Prettier).
  • Herramienta de profiling: Clinic.js (npm i -g clinic) o acceso al inspector de Node.js integrado en Chrome DevTools.
  • Cuenta en un registro de contenedores (Docker Hub o similar) si se desea completar la fase de despliegue del pipeline.
  • Dominio sólido de NestJS a nivel intermedio: módulos, proveedores, guards, interceptores, pipes y decoradores personalizados (equivalente al curso NNJS02).
  • Experiencia práctica con TypeScript, incluyendo genéricos, decoradores y tipos de utilidad.
  • Familiaridad con bases de datos relacionales o NoSQL y al menos un ORM o ODM (TypeORM, Prisma o Mongoose).
  • Conocimientos básicos de mensajería asíncrona (colas, publicación/suscripción) y contenedores Docker para poder levantar dependencias de infraestructura en local.
  • Noción general de CI/CD y uso habitual de Git en flujos de trabajo colaborativos.