Skip to content

Architecture

peter-olai edited this page May 7, 2025 · 3 revisions

Chat-Service Architecture

This page provides an overview of the architectural design and principles guiding the development of the VR4VET Chat-Service.

Architectural Approach

The Chat-Service adopts a Microservice Architecture. This approach was chosen over a multi-tier architecture to better suit the existing larger codebase and to leverage the benefits of microservices for developing the chatbot application, particularly with Python's strengths in AI and rapid development.

Core Concepts:

  • Single Responsibility: Each microservice is designed to perform one main function. This keeps the codebase for each service small and easier to maintain.
  • Independent Deployment: Services can be refactored, redeployed, or scaled without impacting other parts of the system. Failure in one microservice doesn’t necessarily bring down the entire system.
  • Loose Coupling and Autonomy: Microservices communicate through well-defined APIs and do not depend on each other’s internal implementations. This allows for flexibility in technology choices, enabling the use of Python for AI-related services alongside a C# frontend.

Key Architectural Drivers

The architecture is shaped by several key drivers, including functional requirements, quality attributes, and business needs. For a comprehensive list, please refer to the Architectural Drivers / Architectural Significant Requirements document.

Some notable drivers include:

  • RAG (Retrieval-Augmented Generation): The system must allow uploading, indexing, and retrieving information from documents to enhance chatbot responses.
  • Microservices for Chatbot/LLM: A dedicated Python backend handles chatbot requests, keeping the Unity client lightweight.
  • Cost Management: Prioritizing low-cost or open-source solutions.

Diagrams

For visual representations of the architecture, including component, deployment, and process views, please see the Diagrams page.

Key Stakeholders and Concerns

The design and development of the Chat-Service are influenced by various stakeholders, each with specific interests and concerns. Understanding these helps to clarify architectural decisions. For full details, see the Stakeholders Document.

  • Developers (IT2901 Group 11):
    • Concerns: Deployability, scalability, maintainability, modifiability, and technology choices.
  • End Users (Young Job Seekers, Vocational Students, Career Counselors):
    • Concerns: Usability (including accessibility and Universal Design), performance, availability, and robustness of the chatbot.
  • IMTEL Vr4vet Product Owner:
    • Concerns: Strategic alignment of the project with organizational goals, compliance, and financial oversight.
  • Regulatory Bodies:
    • Concerns: Compliance with legal and regulatory standards, particularly data privacy (GDPR), security, and copyright law.

Clone this wiki locally