⬡ Hub
Skip to content

Architecture Design Document: Zomato-like App

1. Introduction

This document describes the high-level architecture of the Zomato-like app, which will be a microservices-based architecture.

2. Architectural Goals

  • Scalability: The architecture must be able to handle a large and growing number of users, restaurants, and orders.
  • Performance: The system must be responsive and provide a good user experience.
  • Reliability: The system must be highly available and fault-tolerant.
  • Security: The system must be secure and protect user data.

3. System Architecture

Microservices Architecture

4. Component Design

4.1. User Service

  • Technology: Node.js, PostgreSQL
  • Responsibilities: Manages user authentication, profiles, and reviews.

4.2. Restaurant Service

  • Technology: Node.js, PostgreSQL
  • Responsibilities: Manages restaurant information, menus, and orders.

4.3. Order Service

  • Technology: Node.js, RabbitMQ, PostgreSQL
  • Responsibilities: Manages the lifecycle of an order, from placement to delivery.

4.4. Payment Service

  • Technology: Node.js, Stripe API
  • Responsibilities: Processes payments for orders.

4.5. Search Service

  • Technology: Elasticsearch
  • Responsibilities: Provides search functionality for restaurants and menus.

5. Technology Stack

  • Frontend: React (Web), React Native (Mobile)
  • Backend: Node.js (Microservices)
  • Database: PostgreSQL, Elasticsearch, Redis
  • Cloud Provider: Amazon Web Services (AWS)