{"id":28766288,"url":"https://github.com/emirbaycan/event-driven-microservice-ecommerce-platform","last_synced_at":"2026-04-12T00:04:28.273Z","repository":{"id":295679804,"uuid":"990891450","full_name":"emirbaycan/event-driven-microservice-ecommerce-platform","owner":"emirbaycan","description":"Production-ready, event-driven e-commerce platform using microservices. Built with Go, Next.js, PostgreSQL, RabbitMQ, gRPC, and Docker. Scalable, cloud-native architecture.","archived":false,"fork":false,"pushed_at":"2025-05-26T20:14:33.000Z","size":0,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-05-26T20:43:17.724Z","etag":null,"topics":["api-gateway","architecture","cloud-native","distributed-system","docker","ecommerce","event-driven","go","golang","grpc","microservices","nextjs","postgresql","rabbitmq","react","scalable","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/emirbaycan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-05-26T19:58:50.000Z","updated_at":"2025-05-26T20:19:17.000Z","dependencies_parsed_at":"2025-05-26T20:53:33.798Z","dependency_job_id":null,"html_url":"https://github.com/emirbaycan/event-driven-microservice-ecommerce-platform","commit_stats":null,"previous_names":["emirbaycan/event-driver-microservice-ecommerce-platform"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/emirbaycan/event-driven-microservice-ecommerce-platform","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emirbaycan%2Fevent-driven-microservice-ecommerce-platform","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emirbaycan%2Fevent-driven-microservice-ecommerce-platform/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emirbaycan%2Fevent-driven-microservice-ecommerce-platform/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emirbaycan%2Fevent-driven-microservice-ecommerce-platform/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/emirbaycan","download_url":"https://codeload.github.com/emirbaycan/event-driven-microservice-ecommerce-platform/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emirbaycan%2Fevent-driven-microservice-ecommerce-platform/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260355163,"owners_count":22996463,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api-gateway","architecture","cloud-native","distributed-system","docker","ecommerce","event-driven","go","golang","grpc","microservices","nextjs","postgresql","rabbitmq","react","scalable","typescript"],"created_at":"2025-06-17T12:00:43.765Z","updated_at":"2026-04-12T00:04:28.232Z","avatar_url":"https://github.com/emirbaycan.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🛒 Event-Driven Microservices E-Commerce Platform\n\nA production-grade, distributed e-commerce application built using event-driven microservices architecture. Technologies include Go (Golang), Next.js (React), PostgreSQL, RabbitMQ, gRPC, and Docker.\n\n---\n\n## 📦 Repository Structure\n\n```\n.\n├── apps/\n│   ├── api-gtw/           # API Gateway (Golang)\n│   ├── customer-svc/      # Customer microservice (Golang)\n│   ├── order-svc/         # Order microservice (Golang)\n│   ├── payment-svc/       # Payment microservice (Golang)\n│   ├── product-svc/       # Product microservice (Golang)\n│   └── web-ui/            # Frontend (Next.js + Tailwind CSS)\n├── configs/               # SQL init files \u0026 configs\n├── docs/                  # Project documentation \u0026 diagrams\n├── packages/              # Shared Go code for microservices\n├── scripts/               # DevOps and utility scripts\n├── docker-compose.yml     # Full-stack Docker Compose (local/dev)\n└── LICENSE\n```\n\n---\n\n## 🚀 Features\n\n* **Domain-driven microservices** with separate databases (PostgreSQL)\n* **RabbitMQ** for async messaging \u0026 event-driven workflows\n* **gRPC** communication between API Gateway and microservices\n* **API Gateway** for secure, unified access and service discovery\n* **Next.js frontend** with modern, responsive UI (SSR ready)\n* **Full Docker support** for local dev and production\n* Modular, ready for horizontal scaling and cloud deployment\n\n---\n\n## ⚡ Quick Start\n\n### 1. Clone the repository\n\n```bash\ngit clone https://github.com/youruser/yourrepo.git\ncd yourrepo\n```\n\n### 2. Configure Environment\n\n* Copy `.env.example` to `.env` in each service directory (e.g., `apps/api-gtw/`, etc.)\n* Edit connection strings, secrets, and hostnames as needed (see `.env.example` files).\n\n### 3. Run All Services with Docker Compose\n\n```bash\ndocker-compose up --build\n```\n\n\u003e All microservices, RabbitMQ, PostgreSQL databases, API Gateway, and frontend will start.\n\n---\n\n## 🏗️ Microservices Overview\n\n| Service       | Description                                  | Language | Port  | Dockerfile         |\n| ------------- | -------------------------------------------- | -------- | ----- | ------------------ |\n| API Gateway   | gRPC/HTTP API Gateway, routing, auth         | Go       | 8080  | apps/api-gtw/      |\n| Customer SVC  | Customer registration \u0026 management           | Go       | 50051 | apps/customer-svc/ |\n| Product SVC   | Product catalog, CRUD                        | Go       | 50050 | apps/product-svc/  |\n| Order SVC     | Order creation, listing, and processing      | Go       | 50052 | apps/order-svc/    |\n| Payment SVC   | Payment processing, integrates with RabbitMQ | Go       | 50053 | apps/payment-svc/  |\n| Frontend (UI) | Next.js, user/customer SPA                   | TS/React | 3000  | apps/web-ui/       |\n\n* **Each microservice** has its own Dockerfile and can run independently.\n\n---\n\n## 🔗 Service-to-Service Communication\n\n* **Frontend** ⇄ **API Gateway**: HTTP (REST)\n* **API Gateway** ⇄ **Microservices**: gRPC\n* **Order SVC** ⇄ **Payment SVC**: RabbitMQ (AMQP events)\n* **Each SVC** ⇄ **Own PostgreSQL DB**: Isolated data per service\n\n---\n\n## 🗄️ Example .env for API Gateway\n\n```env\nPORT=8080\nGRPC_HOST_PRODUCT_SVC=product-svc:50050\nGRPC_HOST_CUSTOMER_SVC=customer-svc:50051\nGRPC_HOST_ORDER_SVC=order-svc:50052\n```\n\nUpdate these for your domain if deploying in production.\n\n---\n\n## 🐳 Example: Running a Single Service\n\nEach microservice can be run standalone, for example:\n\n```bash\ncd apps/order-svc\ndocker-compose up --build\n```\n\n\u003e Update `DATABASE_URL` and service hostnames as needed.\n\n---\n\n## 🌍 Deployment \u0026 Scaling\n\n* Designed for **cloud-native**: Deploy services to separate servers/domains (e.g. order-svc.domain.com).\n* Add more replicas (horizontal scaling) by increasing service count in Compose, or using Kubernetes.\n* Use external managed PostgreSQL and RabbitMQ for HA/DR.\n\n---\n\n## 📸 Diagrams \u0026 Screenshots\n\nSee `docs/` for system diagrams and UI screenshots.\n\n---\n\n## 👤 Author\n\n* **Emir Baycan**\n  [emirbaycan.com.tr](https://emirbaycan.com.tr)\n\n---\n\n## 📄 License\n\nMIT License (see LICENSE file).\n\n---\n\n## 🤝 Contributing\n\nPull requests are welcome! Open an issue for feedback or questions.\n\n---\n\n\u003e **Professional, modular, production-ready. Use this as your reference architecture for modern, scalable e-commerce platforms.**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Femirbaycan%2Fevent-driven-microservice-ecommerce-platform","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Femirbaycan%2Fevent-driven-microservice-ecommerce-platform","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Femirbaycan%2Fevent-driven-microservice-ecommerce-platform/lists"}