{"repo":"rasadov/EcommerceAPI","free":true,"listed":false,"github":"https://github.com/rasadov/EcommerceAPI","clone":"git clone https://github.com/rasadov/EcommerceAPI.git","description":"Modular e-commerce backend with a GraphQL gateway and gRPC microservices for accounts, products, orders, payments, and recommendations.","language":"Go","stars":694,"topics":["backend","docker","docker-compose","ecommerce","elasticsearch","event-driven","gin","go","gqlgen","graphql"],"license":"Apache-2.0","category":"deployment-docker-iac","readme_excerpt":"ECOMMERCE MICROSERVICES This repository hosts a sample e-commerce platform demonstrating a microservices architecture using multiple Go services alongside a Python-based Recommender service . The project showcases: - gRPC communication between services - Kafka-based event streaming pipeline - A unified GraphQL API gateway for clients - Elasticsearch integration for product search --- 📚 Table of Contents - Overview - Architecture Diagram - Services - Getting Started - Usage - Contributing - Author - License --- 🧭 Overview The system comprises several microservices: - Account (Go): Manages user accounts, authentication, and authorization. - Product (Go): CRUD for products; indexes product data in Elasticsearch . - Order (Go): Handles order creation and persistence; publishes events to Kafka. - Payment (Go): Handles payment operations and sends updates to order microservice - Recommender (Python): Consumes Kafka events and builds product recommendations. - API Gateway (Go): A GraphQL service exposing a unified API for front-end clients. The entire ecosystem is containerized using Docker Compose . Datastores include PostgreSQL , Elasticsearch , and Kafka . --- 🏗 Architecture Diagram Below is a high-level overview of the system architecture: Communication Overview - API Gateway (GraphQL) talks to: - Account client → Account server → Postgres - Product client → Product server → ElasticSearch + Kafka - Order client → Order server → Postgres + Kafka (also communicates with Product","default_branch":null,"files":null,"tree":[],"storefront":"/r/rasadov","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/rasadov/EcommerceAPI/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}