https://github.com/mysteryhawk17/microservice-ecom
This project implements a microservice-based backend using Node.js, Express, and MongoDB, with a unified GraphQL API for client communication. It leverages Kafka for asynchronous messaging between services and includes a custom Dead Letter Queue (DLQ) to handle event delivery failures.
https://github.com/mysteryhawk17/microservice-ecom
apache-kafka docker docker-compose expressjs graphql microservices nodejs
Last synced: about 2 months ago
JSON representation
This project implements a microservice-based backend using Node.js, Express, and MongoDB, with a unified GraphQL API for client communication. It leverages Kafka for asynchronous messaging between services and includes a custom Dead Letter Queue (DLQ) to handle event delivery failures.
- Host: GitHub
- URL: https://github.com/mysteryhawk17/microservice-ecom
- Owner: MysteryHawk17
- Created: 2024-10-07T21:14:47.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2024-10-20T18:01:22.000Z (7 months ago)
- Last Synced: 2025-04-07T06:19:17.451Z (about 2 months ago)
- Topics: apache-kafka, docker, docker-compose, expressjs, graphql, microservices, nodejs
- Language: JavaScript
- Homepage:
- Size: 202 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Microservices E-Commerce Application
## Overview
This project is a microservices-based e-commerce application consisting of User Service, Product Service, Order Service, and a GraphQL Gateway. It uses Kafka for event-driven communication between services and MongoDB for data storage.## Flow Diagram
## Key Features
- User registration and authentication
- Product management and inventory
- Order processing and management
- GraphQL API for client applications
- Event-driven communication using Kafka
- Custom Dead Letter Queue (DLQ) for handling failed messages## Architecture
- User Service: Manages user registration, authentication, and profiles
- Product Service: Handles product management and inventory
- Order Service: Processes and manages orders
- GraphQL Gateway: Provides a unified API for client applications
- Kafka: Used for inter-service communication
- DLQ Service: Manages messages that fail processing
- MongoDB: Database for all services## Prerequisites
- Docker
- Docker Compose## Quick Start
1. Clone the repository:
```
git clone https://github.com/MysteryHawk17/microservice-ecom
cd microservice-ecom
```2. Start the services:
```
docker-compose up -d
```3. The services will be available at:
- GraphQL Gateway: http://localhost:4000
- User Service: http://localhost:5000
- Product Service: http://localhost:5002
- Order Service: http://localhost:5001
- Dlq Service: http://localhost:8000## Service Specific READMEs
- [User Service](./user-service/README.md)
- [Product Service](./product-service/README.md)
- [Order Service](./order-service/README.md)
- [GraphQL Gateway](./graphql-gateway/README.md)
- [DLQ Service](./dlq-service/README.md)