EatFresh - En Microservice baseret platform til restaurantstyring
En modulær restaurantstyringsløsning bygget med mikrotjenester til bordhåndtering, menuadministration og ordrebehandling, sikret med Auth0-godkendelse, samlet via en API Gateway, og implementeret med Kubernetes for en skalerbar, robust infrastruktur.
Aarhus Universitet
Developed
2024
E-commerce
Architecture
Kubernetes Setup
TableBooking service
Api Gateway
Problemformulering
Projektet stod over for udfordringen med at designe en mikroservicearkitektur, der var robust nok til at håndtere realtidsbordreservationer, dynamiske menuopdateringer og hele ordreflowet, samtidig med at der blev opretholdt en ensartet ydeevne. Et centralt aspekt var implementeringen af sikker autentificering og rollebaseret adgangskontrol for at understøtte forskellige brugergrupper såsom tjenere, ledere og administratorer. Derudover skulle teamet orkestrere containerdeployment, skalering og miljøisolering ved hjælp af Kubernetes for at sikre, at platformen forblev pålidelig og fleksibel under varierende belastninger.
Resultater
Resultatet blev en containeriseret restaurantstyringsplatform bestående af uafhængige services, der fungerede problemfrit sammen. TableService, MenuManagement og OrderProcessing-mikrotjenesterne var fuldt integreret via et API Gateway, som centraliserede routing, håndhævelse af autentificering og aggregering af forespørgsler for at forenkle frontend-implementeringen. Ved at deployere systemet i et Kubernetes-cluster med autoskalering og overvågning opnåede platformen høj tilgængelighed, driftsmæssig robusthed og evnen til ubesværet at skalere i takt med stigende efterspørgsel.
K8
Improved onboarding process
Auth0
Increase in user retention
RabbitMq
Increase in time spent on website
proces
Requirements Analysis & Technical Research: Vi analyserede arbejdsprocesser i restauranter for at definere krav til reservationer, bestillinger og opdatering af menuer. Vi undersøgte branchespecifikke eksempler og udforskede best practices for event-drevne arkitekturer og API-sikkerhed.
Systemarkitektur og Service Design:
Baseret på domæneafgrænsninger opdelte vi systemet i dedikerede services:
TableService til reservationer og statusoversigt
MenuManagement til dynamiske menuer og lagerstyring
OrderProcessing som den centrale workflow-motor
Der blev planlagt et API Gateway til at centralisere adgangskontrol og routing.
Backend- og Infrastrukturimplementering:
Vi udviklede mikrotjenester med REST APIs (Node.js/.NET), implementerede eventkommunikation via message queues (RabbitMQ) og integrerede Auth0 til autentificering. Hver service anvendte PostgreSQL som datalagring.
Integration og Test:
End-to-end-tests verificerede interaktionen mellem services, herunder kobling af ordrer til borde og opdatering af lagerstatus. Vi validerede rollebaseret adgang i brugerflows og overvågede performance i staging-miljøet.
Deployment og Skalering:
Ved hjælp af Kubernetes-manifests og Helm charts deployerede vi alle services, konfigurerede autoskalering og ingress controllers. Vi implementerede observability til health checks og metriks.
Konklusion
Afslutningsvis er der udviklet et avanceret system, som muliggør brugervenlig tilpasning af bordreservationer, menuadministration og oprettelse af ordrer via en single-page-applikation. Platformen er bygget på en mikroservicearkitektur, hvilket giver fleksibilitet og skalerbarhed. Alle kerne-services er deployeret i et Kubernetes-cluster, bortset fra Menu-servicen. Brugerautentificering håndteres sikkert gennem Auth0, hvor forespørgsler valideres og dirigeres af et API Gateway til de relevante mikrotjenester ved hjælp af GraphQL-føderation. Derudover anvendes RabbitMQ til køhåndtering af beskeder, hvilket yderligere styrker systemets robusthed og skalerbarhed.