Skip to content

shaikrasheed99/kotlin-ecommerce-microservices

Repository files navigation

Ecommerce Microservices Application in Kotlin

Architecture Diagram

Architecture Diagram

Microservices Architecture Design Patterns

In this project, I have implemented several design patterns commonly used in microservices architecture

Design Pattern Tools Description
Service Discovery Spring Cloud Netflix Service discovery automatically detects services for communication without relying on hardcoded addresses.
API Gateway Spring Cloud Gateway Single entry for managing, routing, and securing requests between clients and services.
Circuit Breaker Resilience4j Prevents cascading failures by stopping repeated requests to a failing service and allowing it to recover.
Distributed Messaging System Apache Kafka Asynchronous communication between services in microservices environment.
Transactional Outbox Pattern Scheduler Resolves the dual write problem by storing messages in an outbox table, ensuring consistency with business data.
Event Inbox Pattern Inbox Database Table Processes incoming events by storing them in an inbox table, ensuring idempotency and consistency.
Distributed Scheduler Locking ShedLock Ensures only one instance of a scheduled task runs across multiple parallel application instances.

Security Testing Topics

I have implemented below security testing automation pipelines

Security Topic Tools Implemented Pipeline
Static Application Security Testing OWASP dependency-check Service Vulnerability Scanner
Static Application Security Testing Trivy Docker Image Scanner Service Docker Image Scanner
Static Application Security Testing Kubescape Kubernetes Security Scan
Dynamic Application Security Testing OWASP ZAP Scanner Service DAST Scanner

Kubernetes Architecture Diagram

Kubernetes Architecture Diagram

Kubernetes Architecture Components

Kubernetes Objects Manifests
Deployment order-service-deploy - manifest
inventory-service-deploy - manifest
notification-service-deploy - manifest
api-gateway-deploy - manifest
Service order-service-svc - manifest
inventory-service-svc - manifest
notification-service-svc - manifest
api-gateway-svc - manifest
Database Deployment order-service-db-deploy - manifest
inventory-service-db-deploy - manifest
notification-service-db-deploy - manifest
Database Service order-service-db-svc - manifest
inventory-service-db-svc - manifest
notification-service-db-svc - manifest
Persistent Volume order-service-pv - manifest
inventory-service-pv - manifest
notification-service-pv - manifest
Persistent Volume Claim order-service-pvc - manifest
inventory-service-pvc - manifest
notification-service-pvc - manifest
Network Policy order-service-db-np - manifest
inventory-service-db-np - manifest
notification-service-db-np - manifest
Config Map configs - manifest
Secret db-secrets - manifest
Docker Image shaikrasheed99/order-service
shaikrasheed99/inventory-service
shaikrasheed99/notification-service
shaikrasheed99/api-gateway