Saltar a contenido

Visión General de la Arquitectura

La arquitectura del proyecto que desarrollaremos durante el bootcamp se basa en microservicios, lo que le permitirá tener contacto con diferentes tecnologías y patrones de arquitectura modernos.

Arquitectura de Microservicios

mmd

Nuestra arquitectura está compuesta por:

  1. Frontend: Una Single Page Application (SPA) desarrollada con Next.js, que ofrece una experiencia de usuario moderna y responsiva.

  2. API Gateway: Un componente crítico que actúa como punto de entrada único para todos los microservicios, responsable de:

    • Enrutamiento inteligente de solicitudes a los servicios apropiados
    • Autenticación centralizada y validación de tokens JWT
    • Registro (Logging) y monitoreo de todas las solicitudes
    • Transformación de datos entre el cliente y los servicios cuando sea necesario
    • Implementación de políticas de seguridad y limitación de tasa (rate limiting)
  3. Microservicios de Backend:

    • User Management: Servicio en Java/Spring Boot para la gestión de usuarios y autenticación
    • Feedback Request: Servicio en Java/Spring Boot para solicitudes de feedback
    • Feedback Response: Servicio en Java/Spring Boot para respuestas de feedback
    • Feedback Response View: Servicio en Python/FastAPI para la visualización de respuestas
  4. Base de Datos: PostgreSQL para la persistencia de datos, con bases de datos separadas para diferentes contextos

Comunicación entre Servicios

Sistema de Feedback Externo[Microservices]«container»Servicio de Solicitudde Feedback[Java - Spring Boot] Gestiona la creación depreguntas, la aprobación depreguntas por parte delPDM y la generación delenlace para los evaluadoresexternos«container»Servicio de Respuestade Feedback[Java - Spring Boot] Permite a los clientesexternos responder laspreguntas del feedbacksolicitado. Valida el tiempode vigencia de la solicitud«container»Servicio deVisualización deFeedback[Python - FastApi] Permite la visualización delos feedbacks recibidos. Semuestra de forma anónimapara el usuario y noanónima para el PDM«container»Servicio de Usuarios[Java - Spring Boot] Gestión e inicio de sesión(Login) de usuarios contoken JWT«container»Base de Datos deUsuarios[Postgres] Almacena datos de losusuarios«container»Base de Datos deFeedback[Postgres] Almacena datos defeedback y preguntas.«container»Frontend deFeedback Externo[React - NextJS] Pantallas para la gestión desolicitudes, aprobación yrespuesta de feedback declientes externos a losconsultores internos«container»API Gateway[NodeJS Express] Punto de entrada único quegestiona la autenticación, elenrutamiento y los aspectostransversales (cross-cuttingconcerns)usesusesusesusesEnvía solicitudesHTTP/HTTPSValida token JWT yreenvíaVer SolicitudSolicitudesSolicitudes poraprobarPDM AprobarSolicitudPDM RechazarSolicitudEditar SolicitudValida token JWT yreenvíaResponder SolicitudValida token JWT yreenvíaListar RespuestasVer RespuestaUsuarioVer Respuesta PDMValida token JWT yreenvíaRegistrar UsuarioEditar UsuarioEnlazar PDM alusuarioLogin