Overview
Problem: Mandatory carbon footprints for companies contain many optional fields, making data incomplete and
difficult to analyze.
Project Solution: Machine Learning prediction system to automatically complete incomplete carbon footprints of
French companies submitted to ADEME.
My Achievements (Project from scratch):
- Database modeling
- Microservices architecture with Spring Boot and Python
- Spring Boot REST API exposing completed footprints with confidence metrics
- Asynchronous communication with ML Python via Kafka for decoupling and scalability
Microservices Architecture
[Spring Boot API] β [Kafka Topics] β [Python ML Service]
β β
[PostgreSQL] βββββββββββ [Results] βββββββββ
Architecture with 3 microservices:
- 2 Spring Boot services - Responsibility separation (data ingestion and exposure)
- 1 Python service - ML processing and predictions
- Kafka - Asynchronous event bus for inter-service communication
- PostgreSQL - Persistence of footprints and prediction results
Processing flow:
- Ingestion of incomplete carbon footprints via REST API
- Publication of Kafka events with data to predict
- Consumption by Python service and ML model application
- Publication of results on Kafka
- Persistence in database and exposure via API with confidence metrics