Skip to content

Latest commit

 

History

History
63 lines (38 loc) · 3.89 KB

File metadata and controls

63 lines (38 loc) · 3.89 KB

Diagramme sans nom drawio (22)

E-Commerce Application

Overview

This is a full-stack e-commerce application based on a microservice architecture. It implements an event-driven approach for handling user interactions, leveraging event sourcing. The backend includes microservices (CustomerService, ProductService) that communicate via REST APIs. User interactions are captured as events and persisted to a kafka topic that meant to be fiched by the pageEventService and petsit to mongo database .

Backend Microservices

Each microservice is developed with Spring Boot and offers a RESTful API. They utilize Spring Data MongoDB for data persistence and Spring Cloud Stream Functions for event-driven communication.

Backend Microservices

  • CustomerService

    • Functionality: Manages customer data and shopping carts. Persists user interactions as events.
  • ProductService

    • Functionality: Manages product data, including CRUD operations. Persists user interactions as events.
  • PageEventService

    • Functionality:
      • Subscribes to a Kafka topic to fetch user interaction event as (PageEvent) object
      • Persists PageEvent objects fetched from Kafka to a MongoDB database.

Capture d’écran (1412) Capture d’écran (1411)

Frontend

  • Technology: Angular
  • State Management: ngRx

Security

  • Integrated with Keycloak for authentication and authorization.

  • Secures both the backend microservices and the frontend application , in fact addapter were added to both backend microservices (with spring security) and frontend

    Capture d’écran (1421)

    Capture d’écran (1408)

    Capture d’écran (1409)

Deployment

The application is deployed in a local kubernetes cluser with:

  • Helm charts

  • Helmfile

    ffff drawio (1)

    Capture d’écran (1420)

application screan shots

Diagramme sans nom drawio (18) Capture d’écran (1400) Capture d’écran (1401) Capture d’écran (1402) Capture d’écran (1404)