Skip to content

emeraldemperaur/sui-generis

Repository files navigation

Sui Generis

Microservices eCommerce Marketplace Platform (TypeScript)

Overview

Scalable event-driven eCommerce platform using microservices architecture. Features include Real-Time Chat, AI Agent (Ada) Integration, Semantic Product Search, User Management, Order Wishlist, Order Reviews and Paystack, Flutterwave & Stripe-powered payments. Adopted a Domain Driven Design approach to promote component reusability & guarantee bounded context and low-latency communications between respective microservices as clear domain boundaries eliminate the potential for latency gridlock performance issues that can result from redundant or circular service calls. Optimized for observability with Prometheus, Grafana and Kibana; orchestrated via Kubernetes and deployed to AWS EKS.

Designed and developed to be a rapid deployment eCommerce marketplace platform of its own kind for administrator merchants and their approved affiliates to proffer products/services to target customers with extensible core functionality features.

System Requirements

β¦Ώ NodeJS 20+
β¦Ώ β‰₯ 16GB RAM
β¦Ώ Hard Drive: β‰₯ 5GB of available storage
β¦Ώ Docker Desktop (for local container deployment)
β¦Ώ Amazon Web Services

System Design & Architecture

Microservice Architecture

** Private Repositories (Access available upon request) πŸ”

  1. API Gateway Microservice
  2. Notification Microservice
  3. Authentication Microservice
  4. Users Microservice
  5. ProductService Microservice
  6. OrderInvoice Microservice
  7. Reviews Microservice
  8. Chat Microservice
  9. ClientUI Microservice

Services Synopsis

API Gateway

  • Object Oriented::Server, Route, Controller methods
  • JWT Authenticated Client<->API Gateway connection via HTTP
  • Secure API Gateway<->*Microservice(s) connection via HTTP & Socket.IO (WebSockets)
  • AMQP (RabbitMQ) Message Broker
  • Helmet.js - HTTP Header Security
  • HPP.js - Parameter Pollution Prevention
  • XSS(Cross Site Scripting) Sanitization
  • Elasticsearch & Kibana - Logs Monitoring
  • Redis Database for In-Memory Datastore

Notification Microservice

  • Nodemailer SMTP Transport
  • Extensible EJS Email Templates
  • AMQP (RabbitMQ) Message Broker
  • Email Notification Event Message Queue Consumers()
  • Elasticsearch & Kibana - Logs Monitoring

Default Services Health Info Routes

// API Gateway Health
fetch('http:localhost:6900/api-gateway-health');
// API Gateway Info
fetch('http:localhost:6900/api-gateway-info');
// Notifications Microservice Health
fetch('http:localhost:6901/notifications-health');

Toolstack

πŸ’» Frontend

TypeScript ReactJS Tailwind CSS Radix UI

πŸ–₯ Backend & APIs

Node.js Express Bcrypt JSON Web Tokens CORS Helmet.js Axios Sequelize Nodemailer

πŸ—„ Databases & Caching

PostgreSQL MySQL MongoDB Redis

πŸ“‘ Messaging & Real-time

Socket.IO RabbitMQ

πŸ›  Logging, Monitoring & Analytics

Winston Logger Elasticsearch Prometheus Grafana Kibana

🐳 Containerization & DevOps

Docker Kubernetes Minikube Jenkins CI/CD PM2 GitHub Actions

πŸ’³ Payment & Cloud Services

Ada AI Agent Stripe Paystack Flutterwave AWS

βœ… Testing & QA Tools

Jest Postman Cypress JMeter

References

πŸ“– Treatise on Distributed Microservices

About

Microservices eCommerce Marketplace Platform (TypeScript)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published