ÉTUDE DE CAS 01 / TEMPS RÉEL / MOBILITÉ

SAEIV — Plateforme de supervision des transports en temps réel

Une plateforme de production pour superviser en temps réel les opérations de navettes autonomes et de transport.

microservices Spring Boot
8+
enregistrements dans les tables sources
22M+
nouvelles lignes par jour
50K+
connecteurs orchestrés
~42

PARCOURS D'ORCHESTRATION

~42connecteurs orchestrés

  1. 01Règles d'ordre CSV
  2. 02JSON des connecteurs
  3. 03API REST Kafka Connect
  4. 04État RUNNING et contrôle du retard
  5. 05Reprise après échec des tâches

Problème

La plateforme devait présenter les informations de transport en direct tout en acheminant un volume important de changements depuis les sources opérationnelles vers les services en aval. En production, le démarrage des connecteurs Kafka Connect et Debezium nécessitait aussi un ordre maîtrisé.

Architecture

Les services Spring Boot communiquent par API REST et Kafka. Spring Cloud Gateway, Eureka et OpenFeign facilitent l'accès aux services et leur découverte. Debezium et Kafka Connect capturent les changements en base ; Angular et WebSocket alimentent les vues en temps réel des opérateurs.

  • API REST sécurisées par JWT
  • Données sources PostgreSQL et flux d'événements Kafka
  • Docker Compose, GitHub Actions et Nginx pour le déploiement

Ce que j'ai développé

J'ai conçu et développé plus de huit microservices Spring Boot ainsi qu'un orchestrateur autonome en Java 17 / Spring Boot pour le démarrage des connecteurs après déploiement. Il lit les règles d'ordre dans un CSV et les configurations des connecteurs dans des fichiers JSON, crée les connecteurs via l'API REST de Kafka Connect, attend l'état RUNNING, contrôle l'activité Kafka et le retard des consommateurs, puis passe à l'étape suivante lorsque les conditions sont réunies.

Échelle

Les tables sources contenaient plus de 22 millions d'enregistrements et recevaient plus de 50 000 nouvelles lignes par jour. Environ 42 connecteurs Kafka Connect / Debezium nécessitaient une création et un démarrage contrôlés.

Défis techniques

Les tâches des connecteurs peuvent échouer ou démarrer dans le mauvais ordre. L'orchestrateur suit leur état et permet la reprise après un échec afin de rendre la séquence de démarrage observable et maîtrisée. J'ai également contribué au suivi des déploiements et à l'analyse des incidents de production.

Résultat / apport technique

Le démarrage est devenu un processus reproductible, piloté par des règles et des contrôles de santé explicites avant chaque étape. J'ai assuré la coordination technique, le suivi des priorités, les revues de code et l'accompagnement des développeurs autour de la plateforme.

Technologies

  • Java 17
  • Spring Boot
  • Spring Cloud Gateway
  • Eureka
  • OpenFeign
  • REST APIs
  • Kafka
  • Debezium
  • Kafka Connect
  • CDC
  • Angular
  • WebSocket
  • JWT
  • PostgreSQL
  • Docker Compose
  • GitHub Actions
  • Nginx

PROJET SUIVANT

STATLINK

Une plateforme de reporting qui relie données opérationnelles, tableaux de bord interactifs et rapports programmés.