Skip to content

πŸš€ EcommerceBuddy – The Ultimate AI-Powered Online Shopping Hub

Continuous Integration

Online Boutique is a cloud-first microservices demo application. The application is a web-based e-commerce app where users can browse items, add them to the cart, and purchase them.

πŸ€– NEW: AI-Powered Shopping Agents - This application now features an advanced AI agent system powered by Gemini 2.5 Flash that provides intelligent shopping assistance through natural language conversations, image analysis, and personalized product recommendations.

Google uses this application to demonstrate how developers can modernize enterprise applications using Google Cloud products, including: Google Kubernetes Engine (GKE), Cloud Service Mesh (CSM), gRPC, Cloud Operations, Spanner, Memorystore, AlloyDB, Gemini, Vertex AI, Cloud SQL, and Cloud Storage. This application works on any Kubernetes cluster.

If you’re using this demo, please β˜…Star this repository to show your interest!

Note to Googlers: Please fill out the form at go/microservices-demo.

Architecture

Online Boutique is composed of 16 microservices (11 original + 5 AI-powered) written in different languages that talk to each other over gRPC and HTTP APIs.

Architecture of microservices

πŸ€– NEW AI Agent System Architecture

The application now includes an intelligent agent orchestration system that coordinates multiple specialized AI agents:

Architecture of microservices

Core E-commerce Services

Service Language Description
frontend Go Exposes an HTTP server to serve the website. Does not require signup/login and generates session IDs for all users automatically.
cartservice C# Stores the items in the user's shopping cart in Redis and retrieves it.
productcatalogservice Go 🧠 Enhanced with RAG: Provides semantic search using Vertex AI embeddings and Cloud SQL. Supports natural language product queries.
currencyservice Node.js Converts one money amount to another currency. Uses real values fetched from European Central Bank. It's the highest QPS service.
paymentservice Node.js Charges the given credit card info (mock) with the given amount and returns a transaction ID.
shippingservice Go Gives shipping cost estimates based on the shopping cart. Ships items to the given address (mock)
emailservice Python Sends users an order confirmation email (mock).
checkoutservice Go Retrieves user cart, prepares order and orchestrates the payment, shipping and the email notification.
recommendationservice Python Recommends other products based on what's given in the cart.
adservice Java Provides text ads based on given context words.
loadgenerator Python/Locust Continuously sends requests imitating realistic user shopping flows to the frontend.

πŸ€– AI-Powered Services & Agents

Service Language Google Cloud Technologies Description
agentservice Python Gemini 2.5 Flash, Vertex AI Orchestrator + Domain Agents: Coordinates intelligent shopping workflows across specialized AI agents for natural language shopping assistance.
mcpserver Python FastAPI, Cloud Run Tool Discovery Hub: Centralized Model Context Protocol server that exposes all microservice operations as discoverable AI tools.
imageassistantservice Python Gemini 2.5 Flash Image, Vision API, Cloud Storage "Nano Banana" Visualizer: Advanced image analysis and AI-powered product visualization using Gemini 2.5 Flash Image Preview.
reviewservice Python Cloud SQL, AlloyDB Review Intelligence: gRPC service for product reviews with sentiment analysis and review aggregation.
embeddingservice Python Vertex AI Embeddings Semantic Understanding: Generates text embeddings using Vertex AI's text-embedding-004 model for semantic search.
embeddingworker Python Cloud SQL, PostgreSQL LISTEN/NOTIFY Real-time RAG: Event-driven worker that automatically generates embeddings when product data changes.

πŸ€– AI Agent Workflow & Capabilities

Intelligent Shopping Assistant

The AI agent system provides a conversational shopping experience powered by Gemini 2.5 Flash:

🧠 Orchestrator Agent

  • Natural Language Understanding: Analyzes user queries to determine intent and required services
  • Workflow Planning: Creates multi-step plans across different domain agents
  • Tool Discovery: Dynamically discovers available tools through the MCP server
  • Response Synthesis: Combines results from multiple agents into coherent responses

🎯 Specialized Domain Agents

  • πŸ›οΈ Product Agent: Semantic product search using RAG with Vertex AI embeddings
  • πŸ–ΌοΈ Image Agent: Advanced image analysis and "Nano Banana" product visualization
  • πŸ›’ Cart Agent: Intelligent cart management and recommendations
  • πŸ’° Currency Agent: Multi-currency support with real-time conversion
  • ⭐ Sentiment Agent: Review analysis and sentiment-based recommendations

Key AI Features

πŸ” Semantic Product Search

User: "Find me a cozy reading chair for a small apartment"
β†’ Product Agent uses RAG to search embeddings in Cloud SQL
β†’ Returns semantically relevant furniture with style matching

🎨 "Nano Banana" Product Visualization

User: "Show me how this vase would look in my living room [image]"
β†’ Image Agent analyzes room image with Vision API
β†’ Gemini 2.5 Flash Image Preview generates photorealistic visualization
β†’ Result stored in Cloud Storage with signed URL

πŸ’¬ Multi-turn Conversations

User: "I need furniture for my home office"
β†’ Agent: Shows desk options
User: "Something more modern"
β†’ Agent: Refines search using conversation context
User: "Add the white desk to my cart"
β†’ Agent: Processes cart addition and suggests accessories

πŸ“Š Review Intelligence

User: "What do people think about this chair?"
β†’ Review Service aggregates sentiment from Cloud SQL
β†’ Sentiment Agent provides summary with key themes
β†’ Includes rating distribution and highlight quotes

Google Cloud AI Stack Integration

AI Capability Google Cloud Service Implementation
Natural Language Gemini 2.5 Flash Agent reasoning, conversation, planning
Image Understanding Vision API + Gemini Object detection, scene analysis
Product Visualization Gemini 2.5 Flash Image Photorealistic product placement
Semantic Search Vertex AI Embeddings RAG with text-embedding-004 model
Vector Storage Cloud SQL + pgvector High-performance semantic search
Real-time Processing PostgreSQL LISTEN/NOTIFY Event-driven embedding generation
Secure Storage Cloud Storage Generated images with signed URLs

Service Documentation

For detailed implementation guides:

Screenshots

Home Page Checkout Screen
Screenshot of store homepage Screenshot of checkout screen

Quickstart (GKE)

  1. Ensure you have the following requirements:

  2. Clone the latest major version.

    git clone --depth 1 --branch v0 https://github.com/GoogleCloudPlatform/microservices-demo.git
    cd microservices-demo/

    The --depth 1 argument skips downloading git history.

  3. Set the Google Cloud project and region and ensure the Google Kubernetes Engine API is enabled.

    export PROJECT_ID=<PROJECT_ID>
    export REGION=us-central1
    gcloud services enable container.googleapis.com \
      --project=${PROJECT_ID}

    Substitute <PROJECT_ID> with the ID of your Google Cloud project.

  4. Create a GKE cluster and get the credentials for it.

    gcloud container clusters create-auto online-boutique \
      --project=${PROJECT_ID} --region=${REGION}

    Creating the cluster may take a few minutes.

  5. Deploy Online Boutique to the cluster.

    kubectl apply -f ./release/kubernetes-manifests.yaml
  6. Wait for the pods to be ready.

    kubectl get pods

    After a few minutes, you should see the Pods in a Running state:

    NAME                                     READY   STATUS    RESTARTS   AGE
    adservice-76bdd69666-ckc5j               1/1     Running   0          2m58s
    cartservice-66d497c6b7-dp5jr             1/1     Running   0          2m59s
    checkoutservice-666c784bd6-4jd22         1/1     Running   0          3m1s
    currencyservice-5d5d496984-4jmd7         1/1     Running   0          2m59s
    emailservice-667457d9d6-75jcq            1/1     Running   0          3m2s
    frontend-6b8d69b9fb-wjqdg                1/1     Running   0          3m1s
    loadgenerator-665b5cd444-gwqdq           1/1     Running   0          3m
    paymentservice-68596d6dd6-bf6bv          1/1     Running   0          3m
    productcatalogservice-557d474574-888kr   1/1     Running   0          3m
    recommendationservice-69c56b74d4-7z8r5   1/1     Running   0          3m1s
    redis-cart-5f59546cdd-5jnqf              1/1     Running   0          2m58s
    shippingservice-6ccc89f8fd-v686r         1/1     Running   0          2m58s
    
  7. Access the web frontend in a browser using the frontend's external IP.

    kubectl get service frontend-external | awk '{print $4}'

    Visit http://EXTERNAL_IP in a web browser to access your instance of Online Boutique.

  8. Congrats! You've deployed the default Online Boutique. To deploy a different variation of Online Boutique (e.g., with Google Cloud Operations tracing, Istio, etc.), see Deploy Online Boutique variations with Kustomize.

  9. Once you are done with it, delete the GKE cluster.

    gcloud container clusters delete online-boutique \
      --project=${PROJECT_ID} --region=${REGION}

    Deleting the cluster may take a few minutes.

Additional deployment options

  • Terraform: See these instructions to learn how to deploy Online Boutique using Terraform.
  • Istio / Cloud Service Mesh: See these instructions to deploy Online Boutique alongside an Istio-backed service mesh.
  • Non-GKE clusters (Minikube, Kind, etc): See the Development guide to learn how you can deploy Online Boutique on non-GKE clusters.
  • πŸ€– AI Shopping Agents: Deploy the full AI agent system with Gemini 2.5 Flash, semantic search, and "Nano Banana" product visualization:
    # Deploy with AI agents and Cloud SQL
    cd kustomization
    kubectl apply -k .
  • 🧠 RAG-Enhanced Product Search: Enable semantic search with Vertex AI embeddings and Cloud SQL vector storage
  • πŸ“Š Review Intelligence: Deploy review service with sentiment analysis and Cloud SQL integration
  • 🎨 "Nano Banana" Image Generation: Advanced product visualization using Gemini 2.5 Flash Image Preview
  • And more: The /kustomize directory contains instructions for customizing the deployment of Online Boutique with other variations.

Documentation

  • Development to learn how to run and develop this app locally.

Demos featuring Online Boutique

About

No description, website, or topics provided.

Resources

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages