What we have done in this project?
Ce projet consiste en le développement d'un système de streaming en temps réel qui capture les changements de données transactionnelles et les traite pour alimenter un dashboard d'analyse des ventes e-commerce. Le système permet une analyse continue et en temps réel des transactions commerciales.
Le pipeline commence par PostgreSQL qui stocke les données transactionnelles de l'e-commerce. Debezium, un connecteur CDC (Change Data Capture), capture en temps réel tous les changements dans la base de données PostgreSQL et les transmet à Kafka Topics. Cette approche garantit que chaque modification de transaction est immédiatement détectée et traitée.
Les données sont ensuite consommées depuis Kafka Topics par Spark Streaming, qui effectue le traitement en temps réel. Spark Streaming permet d'effectuer des agrégations, transformations et analyses complexes sur les flux de données transactionnelles. Les données traitées sont ensuite stockées dans MySQL, qui sert de base de données analytique pour le stockage des résultats.
Une API Spring Boot expose les données traitées, permettant aux applications frontend d'accéder aux analyses. Le dashboard React consomme cette API pour afficher les métriques de ventes en temps réel. Le système inclut également des notifications email automatisées pour alerter les utilisateurs sur des événements importants ou des seuils dépassés dans les analyses de ventes.
Développement d'un système de streaming temps réel pour analyse des ventes e-commerce
PostgreSQL ➟ Debezium (CDC) ➟ Kafka Topics ➟ Spark Streaming ➟ MySQL ➟ Spring Boot (API) ➟ React (Dashboard) avec notifications email
PostgreSQL, Debezium, Kafka, Spark Streaming, MySQL, Spring Boot, React, Docker, Terraform
Amélioration de l'architecture :
1. Ingestion Layer : Apache Kafka pour l'ingestion en streaming des données brutes (JSON, CSV).
2. Storage Layer : MinIO (S3 compatible) et AWS S3 pour stockage hybride.
3. Processing Layer : Apache Spark (Master/Workers) avec monitoring CloudWatch.
4. Serving Layer : PostgreSQL pour servir les données traitées.
5. Visualisation Layer : Dashboards BI pour analyse visuelle.
IaC : Terraform pour provisionnement automatisé.
Orchestration : Docker pour conteneurisation des composants.
Transforming ideas into reality
contact me