Suivre 10 000 expéditions par jour sans perdre un événement
Une chaîne logistique où chaque position compte : si un capteur parle et que personne n'écoute, la promesse au client final tombe.
Le problème
Les capteurs remontent des positions en continu. L'interface doit les afficher sans mentir : pas de saut, pas de doublon, pas de « dernière position » figée parce qu'une connexion a lâché.
Ce que j'ai fait
Ingestion des remontées capteurs, diffusion par WebSocket vers le front, carte live avec historique de trajet. Reconnexion automatique et rejeu des événements manqués plutôt que rechargement complet. Côté base, un schéma qui garde l'événement brut et la position agrégée.
Les 50+ capteurs sont intégrés derrière une même interface : un nouveau modèle de capteur ne touche pas l'affichage.
Résultat
Le suivi tient la charge d'un flux quotidien de plus de 10 000 expéditions, et l'écran reste utilisable quand le réseau se dégrade.
Ce que je ferais différemment
Poser les métriques avant la première ligne de code : latence d'ingestion, taux de reconnexion, âge de la dernière position. Sans elles, on ne prouve pas que ça tient — on l'espère.
Stack
- Next.js
- WebSocket
- PostgreSQL
- Docker
- Capteurs IoT
Le prochain système
Quand une décision de cette page est réutilisable, elle finit dans les notes techniques.