EatFresh - A restaurant management Microservices-Based Platform
A modular restaurant management solution built with microservices for table management, menu administration, and order processing, secured with Auth0 authentication, unified via an API Gateway, and deployed using Kubernetes for scalable, resilient infrastructure.
Aarhus University
Developed
2024
E-commerce
Architecture
Kubernetes Setup
TableBooking service
Api Gateway
Challenge
The project faced the challenge of designing a microservice architecture robust enough to handle real-time table reservations, dynamic menu updates, and the full order lifecycle while maintaining consistent performance. A critical aspect was implementing secure authentication and role-based access control to accommodate different user groups such as waiters, managers, and administrators. Additionally, the team needed to orchestrate container deployment, scaling, and environment isolation using Kubernetes to ensure the platform remained reliable and adaptable under varying loads.
Results
The result was a containerized restaurant management platform composed of independent services that worked seamlessly together. The TableService, MenuManagement, and OrderProcessing microservices were fully integrated through an API Gateway, which centralized routing, authentication enforcement, and request aggregation to simplify the frontend implementation. By deploying the system to a Kubernetes cluster with autoscaling configurations and monitoring, the platform achieved high availability, operational resilience, and the ability to scale effortlessly as demand increased.
K8
Improved onboarding process
Auth0
Increase in user retention
RabbitMq
Increase in time spent on website
Process
Requirements Analysis & Technical Research: We analyzed operational workflows in restaurants to define requirements for reservations, ordering, and menu updates. We studied industry examples and explored best practices for event-driven architectures and API security.
System Architecture & Service Design: Based on domain boundaries, we split the system into dedicated services:
TableService for reservations and statuses
MenuManagement for dynamic menus and stock tracking
OrderProcessing as the core workflow engine
An API Gateway was planned to centralize access control and routing.
Backend & Infrastructure Implementation: We developed microservices with REST APIs (Node.js/.Net), implemented event communication via message queues (RabbitMQ), and integrated Auth0 for authentication. Each service used a PostgreSQL datastore for persistence
Integration & Testing: End-to-end tests verified interactions between services, including order-to-table linking and stock updates. We validated role-based access across user flows and monitored performance in staging.
Deployment & Scaling: Using Kubernetes manifests and Helm charts, we deployed all services, configuring auto-scaling policies and ingress controllers. We implemented observability for health checks and metrics.
Conclusion
In conclusion, an advanced system has been developed that enables user-friendly customization of table reservations, menu management, and order creation through a single-page application. The platform is built on a microservice architecture, providing flexibility and scalability. All core services are deployed within a Kubernetes cluster, except for the Menu service. User authentication is handled securely via Auth0, with requests validated and routed by an API Gateway to the appropriate microservices using GraphQL federation. Additionally, RabbitMQ is used for message queuing, further enhancing the system’s resilience and scalability.