# maousekai/vmarket architecture

> Architecture diagram of the GitHub repository maousekai/vmarket, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-10-31). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/maousekai/vmarket
- Repository: https://github.com/maousekai/vmarket

## Overview

VMarket is a multi-vendor commerce platform built from independently owned microservices, with a web frontend, an API gateway, and AI capabilities. A representative user journey is to browse products, manage a cart, place an order, pay, and receive delivery; account, shop, and product management support that journey. Services own separate databases and communicate through REST and RabbitMQ events. The excerpts show several internal service behaviors, but not most service-to-service wiring, so those specific workflow links are marked unverified rather than asserted as fact.

Main entry points: [`services/api-gateway/src/main/java/com/vmarket/gateway`](https://github.com/maousekai/vmarket/tree/dev/services/api-gateway/src/main/java/com/vmarket/gateway) (API Gateway), [`services/order-service/src/main/java/com/vmarket/order`](https://github.com/maousekai/vmarket/tree/dev/services/order-service/src/main/java/com/vmarket/order) (Orders), [`services/delivery-service/src/main/java/com/vmarket/delivery`](https://github.com/maousekai/vmarket/tree/dev/services/delivery-service/src/main/java/com/vmarket/delivery) (Delivery and tracking), [`services/payment-service/src/main/java/com/vmarket/payment`](https://github.com/maousekai/vmarket/tree/dev/services/payment-service/src/main/java/com/vmarket/payment) (Payments)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["Client"]
  node_web["Web frontend"]
  node_mobile["Mobile client"]
end

subgraph group_edge["API Edge"]
  node_gateway["API Gateway"]
end

subgraph group_commerce["Commerce Services"]
  node_auth["Authentication"]
  node_users["User profiles"]
  node_shops["Shops"]
  node_products["Products and inventory"]
  node_cart["Shopping cart"]
  node_reviews["Product reviews"]
  node_notifications["Notifications"]
end

subgraph group_fulfillment["Order Fulfillment"]
  node_orders["Orders"]
  node_payments["Payments"]
  node_delivery["Delivery and tracking"]
end

subgraph group_ai["AI Services"]
  node_search["AI search"]
  node_recommendations["Recommendations"]
  node_chatbot["RAG chatbot"]
end

subgraph group_messaging["Service Messaging"]
  node_rabbitmq["RabbitMQ"]
  node_service_data[("Service databases")]
end

node_buyer(("Buyer"))
node_payos["PayOS"]

node_buyer -.->|"uses"| node_web
node_web -.->|"sends requests"| node_gateway
node_mobile -->|"sends requests"| node_gateway
node_gateway -->|"routes requests"| node_auth
node_gateway -->|"routes requests"| node_users
node_gateway -->|"routes requests"| node_shops
node_gateway -->|"routes requests"| node_products
node_gateway -->|"routes requests"| node_cart
node_gateway -->|"routes requests"| node_orders
node_gateway -->|"routes requests"| node_payments
node_gateway -->|"routes requests"| node_delivery
node_gateway -->|"routes requests"| node_reviews
node_gateway -->|"routes requests"| node_notifications
node_gateway -->|"routes requests"| node_search
node_gateway -->|"routes requests"| node_recommendations
node_gateway -->|"routes requests"| node_chatbot
node_orders -.->|"reads cart"| node_cart
node_orders -.->|"checks address"| node_users
node_orders -.->|"coordinates payment"| node_payments
node_payments -.->|"creates payment link"| node_payos
node_orders -.->|"coordinates delivery"| node_delivery
node_delivery -.->|"checks order"| node_orders
node_orders -.->|"publishes events"| node_rabbitmq
node_products -.->|"publishes events"| node_rabbitmq
node_delivery -.->|"publishes events"| node_rabbitmq
node_rabbitmq -.->|"delivers events"| node_notifications
node_service_data -.->|"stores service data"| node_auth
node_service_data -.->|"stores service data"| node_users
node_service_data -.->|"stores service data"| node_shops
node_service_data -.->|"stores service data"| node_products
node_service_data -.->|"stores service data"| node_cart
node_service_data -.->|"stores service data"| node_orders
node_service_data -.->|"stores service data"| node_payments
node_service_data -.->|"stores service data"| node_delivery
node_service_data -.->|"stores service data"| node_reviews
node_service_data -.->|"stores service data"| node_notifications

click node_web "https://github.com/maousekai/vmarket/tree/dev/frontend/src"
click node_gateway "https://github.com/maousekai/vmarket/tree/dev/services/api-gateway/src/main/java/com/vmarket/gateway"
click node_auth "https://github.com/maousekai/vmarket/tree/dev/services/auth-service/src/main/java/com/vmarket/auth"
click node_users "https://github.com/maousekai/vmarket/tree/dev/services/user-service/src/main/java/com/vmarket/user"
click node_shops "https://github.com/maousekai/vmarket/tree/dev/services/shop-service/src/main/java/com/vmarket/shop"
click node_products "https://github.com/maousekai/vmarket/tree/dev/services/product-service/src/main/java/com/vmarket/product"
click node_cart "https://github.com/maousekai/vmarket/tree/dev/services/cart-service/src/main/java/com/vmarket/cart"
click node_orders "https://github.com/maousekai/vmarket/tree/dev/services/order-service/src/main/java/com/vmarket/order"
click node_payments "https://github.com/maousekai/vmarket/tree/dev/services/payment-service/src/main/java/com/vmarket/payment"
click node_delivery "https://github.com/maousekai/vmarket/tree/dev/services/delivery-service/src/main/java/com/vmarket/delivery"
click node_reviews "https://github.com/maousekai/vmarket/tree/dev/services/review-service/src/main/java/com/vmarket/review"
click node_notifications "https://github.com/maousekai/vmarket/tree/dev/services/notification-service/src/main/java/com/vmarket/notification"
click node_search "https://github.com/maousekai/vmarket/tree/dev/services/ai-search-service"
click node_recommendations "https://github.com/maousekai/vmarket/tree/dev/services/recommendation-service"
click node_chatbot "https://github.com/maousekai/vmarket/tree/dev/services/chatbot-service"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_web,node_mobile toneBlue
class node_gateway toneAmber
class node_auth,node_users,node_shops,node_products,node_cart,node_reviews,node_notifications toneMint
class node_orders,node_payments,node_delivery toneRose
class node_search,node_recommendations,node_chatbot,node_buyer,node_payos toneIndigo
class node_rabbitmq,node_service_data toneTeal
```

## Components

### Client

- [Web frontend](https://github.com/maousekai/vmarket/tree/dev/frontend/src): `frontend/src`
- **Mobile client**

### API Edge

- [API Gateway](https://github.com/maousekai/vmarket/tree/dev/services/api-gateway/src/main/java/com/vmarket/gateway): `services/api-gateway/src/main/java/com/vmarket/gateway`

### Commerce Services

- [Authentication](https://github.com/maousekai/vmarket/tree/dev/services/auth-service/src/main/java/com/vmarket/auth): `services/auth-service/src/main/java/com/vmarket/auth`
- [User profiles](https://github.com/maousekai/vmarket/tree/dev/services/user-service/src/main/java/com/vmarket/user): `services/user-service/src/main/java/com/vmarket/user`
- [Shops](https://github.com/maousekai/vmarket/tree/dev/services/shop-service/src/main/java/com/vmarket/shop): `services/shop-service/src/main/java/com/vmarket/shop`
- [Products and inventory](https://github.com/maousekai/vmarket/tree/dev/services/product-service/src/main/java/com/vmarket/product): `services/product-service/src/main/java/com/vmarket/product`
- [Shopping cart](https://github.com/maousekai/vmarket/tree/dev/services/cart-service/src/main/java/com/vmarket/cart): `services/cart-service/src/main/java/com/vmarket/cart`
- [Product reviews](https://github.com/maousekai/vmarket/tree/dev/services/review-service/src/main/java/com/vmarket/review): `services/review-service/src/main/java/com/vmarket/review`
- [Notifications](https://github.com/maousekai/vmarket/tree/dev/services/notification-service/src/main/java/com/vmarket/notification): `services/notification-service/src/main/java/com/vmarket/notification`

### Order Fulfillment

- [Orders](https://github.com/maousekai/vmarket/tree/dev/services/order-service/src/main/java/com/vmarket/order): `services/order-service/src/main/java/com/vmarket/order`
- [Payments](https://github.com/maousekai/vmarket/tree/dev/services/payment-service/src/main/java/com/vmarket/payment): `services/payment-service/src/main/java/com/vmarket/payment`
- [Delivery and tracking](https://github.com/maousekai/vmarket/tree/dev/services/delivery-service/src/main/java/com/vmarket/delivery): `services/delivery-service/src/main/java/com/vmarket/delivery`

### AI Services

- [AI search](https://github.com/maousekai/vmarket/tree/dev/services/ai-search-service): `services/ai-search-service`
- [Recommendations](https://github.com/maousekai/vmarket/tree/dev/services/recommendation-service): `services/recommendation-service`
- [RAG chatbot](https://github.com/maousekai/vmarket/tree/dev/services/chatbot-service): `services/chatbot-service`

### Service Messaging

- **RabbitMQ**
- **Service databases**

### Other components

- **Buyer**
- **PayOS**

## Connections

- Buyer → Web frontend: uses (evidence: `README.md`)
- Web frontend → API Gateway: sends requests (evidence: `README.md`)
- Mobile client → API Gateway: sends requests (evidence: `README.md`)
- API Gateway → Authentication: routes requests (evidence: `README.md`)
- API Gateway → User profiles: routes requests (evidence: `README.md`)
- API Gateway → Shops: routes requests (evidence: `README.md`)
- API Gateway → Products and inventory: routes requests (evidence: `README.md`)
- API Gateway → Shopping cart: routes requests (evidence: `README.md`)
- API Gateway → Orders: routes requests (evidence: `README.md`)
- API Gateway → Payments: routes requests (evidence: `README.md`)
- API Gateway → Delivery and tracking: routes requests (evidence: `README.md`)
- API Gateway → Product reviews: routes requests (evidence: `README.md`)
- API Gateway → Notifications: routes requests (evidence: `README.md`)
- API Gateway → AI search: routes requests (evidence: `README.md`)
- API Gateway → Recommendations: routes requests (evidence: `README.md`)
- API Gateway → RAG chatbot: routes requests (evidence: `README.md`)
- Orders → Shopping cart: reads cart (evidence: `services/order-service/src/main/java/com/vmarket/order/service/OrderService.java`)
- Orders → User profiles: checks address (evidence: `services/order-service/src/main/java/com/vmarket/order/service/OrderService.java`)
- Orders → Payments: coordinates payment (evidence: `README.md`)
- Payments → PayOS: creates payment link (evidence: `services/payment-service/src/main/java/com/vmarket/payment/service/PaymentService.java`)
- Orders → Delivery and tracking: coordinates delivery (evidence: `README.md`)
- Delivery and tracking → Orders: checks order (evidence: `services/delivery-service/src/main/java/com/vmarket/delivery/service/DeliveryService.java`)
- Orders → RabbitMQ: publishes events (evidence: `README.md`)
- Products and inventory → RabbitMQ: publishes events (evidence: `README.md`)
- Delivery and tracking → RabbitMQ: publishes events (evidence: `README.md`)
- RabbitMQ → Notifications: delivers events (evidence: `README.md`)
- Service databases → Authentication: stores service data (evidence: `README.md`)
- Service databases → User profiles: stores service data (evidence: `README.md`)
- Service databases → Shops: stores service data (evidence: `README.md`)
- Service databases → Products and inventory: stores service data (evidence: `README.md`)
- Service databases → Shopping cart: stores service data (evidence: `README.md`)
- Service databases → Orders: stores service data (evidence: `README.md`)
- Service databases → Payments: stores service data (evidence: `README.md`)
- Service databases → Delivery and tracking: stores service data (evidence: `README.md`)
- Service databases → Product reviews: stores service data (evidence: `README.md`)
- Service databases → Notifications: stores service data (evidence: `README.md`)
