Recommendation System (RS)
At a Glance
Section titled “At a Glance”- 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
Purpose
Section titled “Purpose”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.
Primary Actors
Section titled “Primary Actors”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.

Use-case diagram extracted from MaaSAI deliverable D5.2.
Functional Components
Section titled “Functional Components”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.

Functional components diagram extracted from MaaSAI deliverable D5.2.
Design Baseline
Section titled “Design Baseline”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.

Architecture diagram extracted from MaaSAI deliverable D5.2.
Technology Stack
Section titled “Technology Stack”RS is built on a modern, performance-oriented Python ecosystem designed for asynchronous HTTP serving.
| Category | Technology |
|---|---|
| Backend | Python 3.11, FastAPI (asynchronous REST, Pydantic validation, automatic OpenAPI/Swagger documentation) |
| Analytics | NumPy (vector/matrix operations and normalisation), SciPy (statistical calculations and optimisation) |
| Data | PostgreSQL (user credentials and weight storage), Redis (in-memory caching of computed weights and matrix scores) |
| Containerisation | Docker / Docker Compose with an Nginx reverse proxy |
| Licence | MIT |
Integrations & External Dependencies
Section titled “Integrations & External Dependencies”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.
APIs & Interfaces
Section titled “APIs & Interfaces”RS provides no UI; all functionality is exposed via asynchronous REST APIs secured with JWT tokens:
POST /weights/set— calculates and stores normalised criteria weightsGET /weights/get— retrieves the calculated weights for a productPOST /sort— sorts a comparison matrix of manufacturing resources using saved weightsPOST /signupandPOST /login— user registration and access-token creation- Implemented MCDA weighting methods: MEREC, CRITIC, AHP, ROC, FUCOM, SWARA, BWM and Identity
Functional Flow
Section titled “Functional Flow”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 the Recommendation System throughout the MaaS lifecycle — MaaSAI deliverable D6.1.
Deployment & Configuration
Section titled “Deployment & Configuration”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.
| Requirement | Minimum | Recommended |
|---|---|---|
| CPU | 2 vCPUs | — |
| RAM | 2 GB | 16–32 GB |
| Storage | 10 GB SSD | — |
| GPU | None | Dedicated NVIDIA GPU (for future local generative-AI features) |