A production-grade, microservices-based food ordering platform deployed on AWS EKS with Terraform, Ingress-NGINX, Apache Kafka, and GitOps via Argo CD.
- Edge & Load Balancing: Incoming HTTPS traffic reaches an AWS Network Load Balancer (NLB) configured with AWS Certificate Manager (ACM) for TLS termination and cross-zone load balancing.
- Ingress Routing: Decrypted traffic forwards to the NGINX Ingress Controller (
ingress-nginx) running inside the AWS EKS cluster. The controller handles host/path-based routing, CORS policies, and WebSocket protocol connection upgrades. - Internal Microservices: Traffic routes across private subnets to internal ClusterIP services. Microservices communicate with datastores and publish/consume events over the private cluster network.
| Service | Description | Tech Stack | Repository |
|---|---|---|---|
| Auth Service | User authentication, RBAC, tenant management, and asymmetric JWKS token issuing | Node.js, Express, TypeScript, PostgreSQL (TypeORM) | auth-service |
| Catalog Service | Product & pricing catalog, categories, toppings, and asset management | Node.js, Express, TypeScript, MongoDB (Mongoose), AWS S3 | catalog-service |
| Order Service | Order placement, state machine workflows, and payment handling | Node.js, Express, TypeScript, MongoDB (Mongoose), Stripe API | order-service |
| Notification Service | Event-driven customer transactional notifications and emails | Node.js, TypeScript, Apache Kafka, Nodemailer | notification-service |
| WebSocket Service | Real-time order tracking and live status updates | Node.js, TypeScript, Socket.IO, Apache Kafka | websocket-service |
| Client Frontend | Customer web application for browsing menus and ordering | Next.js 14 (App Router), React, TypeScript, Tailwind CSS | client-frontend |
| Admin Dashboard | Restaurant operations and catalog management portal | React 18, Vite, TypeScript, Ant Design, Zustand | admin-dashboard |
- PostgreSQL: Relational database for user credentials, tenant hierarchies, and permission mappings.
- MongoDB: Document database powering product catalogs, customizable toppings, and order state history.
- Apache Kafka: Distributed event streaming platform connecting Catalog, Order, Notification, and WebSocket services for asynchronous, non-blocking workflows.
- AWS S3: Object storage for catalog product images.
- Stripe API: Payment processing and webhook lifecycle management.
The AWS cloud environment is automated through modular Terraform scripts:
- AWS VPC: Custom VPC with public, private, and intra subnets across multiple availability zones.
- AWS EKS: Managed Kubernetes cluster (v1.35) with managed node groups, EBS CSI Driver via IRSA (IAM Roles for Service Accounts), and EKS Pod Identity.
- Platform Tooling: Ingress-NGINX and Argo CD provisioned directly via Helm provider integrations.
- Continuous Integration: Pushes to the
mainbranch trigger GitHub Actions workflows to run linters, execute tests, build multi-architecture Docker containers, and publish them to Docker Hub. - GitOps Continuous Delivery: Argo CD monitors the repository and automatically synchronizes application manifests to the AWS EKS cluster.
- Zero-Downtime Rollouts: Kubernetes Deployments execute rolling updates with active health checks (
readinessProbeandlivenessProbe) to maintain uninterrupted service availability.


