Skip to content

Recommendation System (RS)

Recommendation System (RS) icon
  • Category: Cloud & Marketplace Solutions
  • Primary environment: Cloud MaaS Marketplace
  • Documentation focus: Design reference
  • Maturity: TRL 3, moving toward TRL 4 (first release, M18)
  • Related architecture docs: Reference Architecture Guide, Environments

The Recommendation System (RS) helps MaaSAI consumers identify the most suitable provider option for a given manufacturing need. It combines marketplace requests, provider capability data, and model-based analysis to generate recommendations that support better matching, faster decisions, and more transparent provider selection.

The D5.2 usage viewpoint defines roles, permissions, constraints, a role-task matrix, and a use case diagram for this solution.

  • MaaS Provider: Publish and update availability, schedules, pricing, quality levels, and special capabilities; constraint: Must be a registered and authenticated platform user, and the published data must stay accurate and up to date.
  • MaaS Consumer: Define manufacturing requirements, review recommendations, and provide feedback on the selected option; constraint: Must be a registered and authenticated user, and requirements must be complete enough to produce meaningful results.
  • Cloud MaaS Marketplace (CMM): Provide the user interface, forward consumer requirements to the RS, display the generated recommendations, and return consumer feedback to the recommendation workflow; constraint: Must preserve secure and reliable data transmission between users and the RS.
  • Recommendation System (RS): Aggregate provider data, analyse request-provider fit, generate recommendation results, and learn from user feedback over time; constraint: Must keep recommendations aligned with MaaSAI goals such as efficiency, agility, and sustainability.

Recommendation System use case

Use-case diagram extracted from MaaSAI deliverable D5.2.

RS is organised around a request interface, a data synthesiser, a recommendation engine, and model services backed by a knowledge base. The functional view shows how provider data from MDC and consumer requirements from CMM are merged before ranked recommendations are returned to the marketplace.

Recommendation System functional components

Functional components diagram extracted from MaaSAI deliverable D5.2.

The Recommendation System is exposed as a containerised service that receives requests from the Cloud MaaS Marketplace and coordinates the internal recommendation workflow.

At runtime, the workflow starts when a consumer request is submitted through CMM. The RS interface receives that request, normalises it, and routes it to the internal recommendation logic.

In parallel, a data synthesiser collects provider capabilities, pricing, and availability from the MaaS Dynamic Catalogue. That prepared data is then combined with consumer requirements and model outputs to generate ranked recommendations.

Recommendation System architecture

Architecture diagram extracted from MaaSAI deliverable D5.2.

RS is built on a modern, performance-oriented Python ecosystem designed for asynchronous HTTP serving.

CategoryTechnology
BackendPython 3.11, FastAPI (asynchronous REST, Pydantic validation, automatic OpenAPI/Swagger documentation)
AnalyticsNumPy (vector/matrix operations and normalisation), SciPy (statistical calculations and optimisation)
DataPostgreSQL (user credentials and weight storage), Redis (in-memory caching of computed weights and matrix scores)
ContainerisationDocker / Docker Compose with an Nginx reverse proxy
LicenceMIT

RS operates as a backend decision-support service downstream of the MaaS Dynamic Catalogue (MDC): the preselected resource list produced by MDC and the consumer’s decision criteria reach RS through the Cloud MaaS Marketplace (CMM), and the ordered ranking is returned to the CMM UI for presentation. External dependencies are the centrally hosted PostgreSQL and Redis instances, an Nginx proxy shielding the API, and Keycloak, which will be integrated in the upcoming version for JWT-based token validation.

RS provides no UI; all functionality is exposed via asynchronous REST APIs secured with JWT tokens:

  • POST /weights/set — calculates and stores normalised criteria weights
  • GET /weights/get — retrieves the calculated weights for a product
  • POST /sort — sorts a comparison matrix of manufacturing resources using saved weights
  • POST /signup and POST /login — user registration and access-token creation
  • Implemented MCDA weighting methods: MEREC, CRITIC, AHP, ROC, FUCOM, SWARA, BWM and Identity

RS is a backend decision-support service without its own UI; the diagram below shows when it becomes active during the MaaS lifecycle:

Activeness of RS throughout the MaaS lifecycle

Activeness of the Recommendation System throughout the MaaS lifecycle — MaaSAI deliverable D6.1.

The system is fully containerised with Docker and Docker Compose: an Nginx proxy is the single entry point (ports 8080/443 mapped to backend port 8000), the FastAPI application runs in an isolated Docker network, and the PostgreSQL 15 and Redis 7 containers accept connections only from that internal network. Configuration relies entirely on environment variables injected at image build time (service hostnames, credentials); the proxy enforces a 10 MB request-body limit and a 60 s read timeout.

RequirementMinimumRecommended
CPU2 vCPUs
RAM2 GB16–32 GB
Storage10 GB SSD
GPUNoneDedicated NVIDIA GPU (for future local generative-AI features)