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.

Project Owner

Project Owner

Aarhus University

Developed

2024

Type

Type

E-commerce

Role

Role

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.

Stack

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.