Atelier – Lambda ou Kappa pour notre application de taxis ?
Objectif : assembler batch et streaming dans une architecture, et justifier le choix.
L’énoncé
Section intitulée « L’énoncé »Notre application de taxis a besoin :
- d’un tableau de bord du chiffre d’affaires par zone, rafraîchi toutes les 5 secondes ;
- d’alertes de panne en temps réel (comme au TP 10) ;
- d’une facturation mensuelle exacte aux chauffeurs.
Lambda ou Kappa ? Dessinez l’architecture : sources, journal, traitements, stockages, consommateurs. Pour chaque besoin, indiquez la couche qui le sert et pourquoi.
Vous avez déjà construit les deux couches : le batch du jour 1 (TP 4, écriture Parquet partitionnée) et le streaming du jour 3 (TP 9 à 11), avec la même API.
Rappel des deux modèles
Section intitulée « Rappel des deux modèles »| Lambda | Kappa | |
|---|---|---|
| Chemins | Batch (exact, périodique) + Speed (temps réel) + Service (fusion) | Un seul : journal rejouable → streaming → service |
| Code | 2 versions à maintenir | 1 seul code |
| Recalcul | Batch complet, simple | Rejouer le journal avec le nouveau code |
| Idéal pour | Rapports exacts + temps réel | Événements, temps réel d’abord |
Questions pour guider le groupe
Section intitulée « Questions pour guider le groupe »- Quelle source d’événements ? Un dossier de fichiers comme en TP, ou Kafka ?
- La facturation doit-elle être recalculable des mois plus tard ? Avec quelle tolérance aux retards ?
- Un watermark de 2 minutes convient-il aux alertes ? À la facturation ?
- Où archiver les événements bruts ? Parquet, Delta, le journal Kafka lui-même ?
- Si le code change, comment recalculer le passé ?
- Combien de codes différents votre équipe peut-elle maintenir ?
Restitution
Section intitulée « Restitution »Un groupe présente son schéma en 2 minutes ; les autres complètent ou contestent. Si le TP 11 a débordé : une seule restitution.
Une correction possible
Section intitulée « Une correction possible » ┌──────────────────────────────┐ Courses, logs ──► Kafka│ journal rejouable │ (événements) └───────┬──────────────┬───────┘ │ │ Structured Streaming Archivage brut fenêtres, watermark court Parquet / Delta partitionné par jour │ │ │ Tableau de bord Alertes Job batch mensuel CA par zone, 5 s /payment facturation exacte (availableNow ou spark.read)- Tableau de bord et alertes : Kappa. Kafka → Structured Streaming, watermark court pour la réactivité.
- Facturation mensuelle : un job batch sur les données archivées (Parquet ou Delta), pour l’exactitude et les retardataires. C’est la couche batch de Lambda, mais écrite avec la même API que le flux.
Une architecture hybride, très fréquente en pratique. Il n’y a pas une seule bonne réponse : valorisez la
justification. Avec Spark, la frontière entre les deux modèles s’estompe : availableNow permet de lancer un
« streaming » comme un batch planifié, et un seul code peut servir les deux couches.
À retenir
Section intitulée « À retenir »- Choisir par besoin (fraîcheur, exactitude, recalcul), pas par mode.
- Le watermark arbitre réactivité et exhaustivité : court pour alerter, long ou batch pour facturer.
- Une seule API pour le batch, le ML et le streaming : c’est le fil des 3 jours.
Dépôt des participants : formations2026/formation-spark-ml (branche participants)
Contenu pédagogique © Ambient IT · 140 Avenue Jean Lolive, 93500 Pantin · formation@ambient-it.net · +33 (0)1 48 10 09 46
Organisme de formation enregistré sous le numéro 11 75 54743 75. Cet enregistrement ne vaut pas agrément de l'État.