Ticket Masala - Architectuursamenvatting¶
Beknopte Gids | Zie Gedetailleerde Architectuur voor de volledige documentatie.
Architectuur in een oogopslag¶
Type: Modulaire Monoliet met AI-Augmentatie
Stack: ASP.NET Core MVC + EF Core + ML.NET
Universal Entity Model (UEM) Terminologie¶
Het systeem maakt gebruik van een gelaagde terminologiestrategie om de consistentie van de externe API te balanceren met de stabiliteit van de interne code.
| UEM (Publieke API) | Interne Code | Beschrijving |
|---|---|---|
| WorkItem | Ticket |
Individuele werkeenheid die verwerkt moet worden |
| WorkContainer | Project |
Verzameling van gerelateerde werkitems |
| WorkHandler | ApplicationUser |
Persoon verantwoordelijk voor het werk |
API-routes: Zowel
/api/v1/ticketsals/api/v1/workitemsworden ondersteund.Views: Labels zijn per domein configureerbaar via
masala_domains.yaml→entity_labels.
Zie ADR-001 voor de volledige onderbouwing.
Belangrijkste Ontwerppatronen¶
| Patroon | Doel | Locatie |
|---|---|---|
| Observer | Event-gestuurde meldingen | Observers/ |
| Repository + UoW | Abstractie van gegevenstoegang | Repositories/ |
| Specificatie | Herbruikbare queries | Repositories/Specifications/ |
| Strategie | Wisselbare AI-algoritmen | Services/GERDA/ |
| Facade | Orchestratie van het AI-subsysteem | GerdaService |
| Factory | Objectcreatie | TicketFactory |
Gedetailleerd Ontwerp¶
Modulaire Monoliet¶
Het systeem is ontworpen als een modulaire monoliet, waarbij eenvoud en schaalbaarheid in balans zijn. Elke module is op zichzelf staand, met duidelijke grenzen en verantwoordelijkheden.
Belangrijkste Modules¶
- Presentatielaag: Beheert gebruikersinteracties.
- Servicelaag: Bevat de bedrijfslogica.
- Repositorylaag: Beheert de toegang tot gegevens.
- AI-laag: Implementeert de GERDA-strategieën.
GERDA AI-modules¶
| Letter | Module | Techniek |
|---|---|---|
| G | Grouping (Groeperen) | K-Means (spamdetectie) |
| E | Estimating (Inschatten) | Classificatie (inspanning) |
| R | Ranking (Prioriteren) | WSJF (prioriteit) |
| D | Dispatching (Toewijzen) | Matrix Factorization (agent matching) |
| A | Anticipation (Anticiperen) | Time Series (voorspelling) |
Service Architectuur (CQRS-lite)¶
| Interface | Verantwoordelijkheid |
|---|---|
ITicketQueryService |
Leesbewerkingen |
ITicketCommandService |
Schrijfbewerkingen |
ITicketFactory |
Ticketcreatie |
Snel aan de slag voor Ontwikkelaars¶
Program.cs→ DI-instellingenDbSeeder.cs→ Laadt voorbeeldgegevens vanuitconfig/seed_data.jsonTicketService.cs→ BedrijfslogicaGerdaService.cs→ AI-hub
Belangrijke Beslissingen¶
| Beslissing | Onderbouwing |
|---|---|
| Lokaal ML.NET | AVG-privacy, geen API-kosten |
| Modulaire Monoliet | Eenvoudiger beheer dan microservices |
| Observer-patroon | AI-verwerking vertraagt de UI niet |
| Repository-patroon | Testbaar, onafhankelijk van database |
Volledige details: Gedetailleerde Architectuur