Skip to content

Architecture Overview

The architecture of the project we will develop during the bootcamp is based on microservices, allowing you to get in touch with different modern technologies and architectural patterns.

Microservices Architecture

mmd

Our architecture is composed of:

  1. Frontend: A Single Page Application (SPA) developed with Next.js, which offers a modern and responsive user experience.

  2. API Gateway: A critical component that acts as a single entry point for all microservices, responsible for:

    • Intelligent routing of requests to the appropriate services
    • Centralized authentication and validation of JWT tokens
    • Logging and monitoring of all requests
    • Data transformation between the client and services when necessary
    • Implementation of security and rate limiting policies
  3. Backend Microservices:

    • User Management: A Java/Spring Boot service for user management and authentication
    • Feedback Request: A Java/Spring Boot service for feedback requests
    • Feedback Response: A Java/Spring Boot service for feedback responses
    • Feedback Response View: A Python/FastAPI service for viewing responses
  4. Database: PostgreSQL for data persistence, with separate databases for different contexts

Communication Between Services

External Feedback System[Microservices]«container»Feedback RequestService[Java - Spring Boot] Manages question creation,question approval by thePDM, and link generationfor external evaluators«container»Feedback ResponseService[Java - Spring Boot] Allows external clients toanswer the questions of therequested feedback.Validates the request'sexpiration time«container»Feedback ViewerService[Python - FastApi] Allows viewing of receivedfeedback. Displaysanonymously for the userand non-anonymously forthe PDM«container»User Service[Java - Spring Boot] User management and loginwith JWT token«container»User Database[Postgres] Stores user data«container»Feedback Database[Postgres] Stores feedback andquestion data.«container»External FeedbackFrontend[React - NextJS] Screens for managingrequests, approvals, andresponses for feedbackfrom external clients tointernal consultants«container»API Gateway[NodeJS Express] Single entry point thatmanages authentication,routing, and cross-cuttingconcernsusesusesusesusesSends HTTP/HTTPSrequestsValidates JWT tokenand forwardsDisplay RequestRequestsRequests to approvePDM ApproveRequestPDM Reject RequestEdit RequestValidates JWT tokenand forwardsRespond to RequestValidates JWT tokenand forwardsList ResponsesDisplay UserResponseDisplay PDMResponseValidates JWT tokenand forwardsRegister UserEdit UserLink PDM to userLogin