Publié: 7 avril 2026
par Sitesh Sharma, Aditya Kumar et Navneeth Nair
Chaque milliseconde compte lorsque les voyageurs recherchent des hôtels, des vols ou des expériences. En tant que plus grande agence de voyages en ligne de l'Inde, MakeMyTrip mise sur la vitesse et la pertinence en temps réel. L'une de ses fonctionnalités les plus importantes est la recherche des hôtels "dernièrement recherchés" : lorsque les utilisateurs tapent dans la barre de recherche, ils s'attendent à une liste personnalisée en temps réel de leurs intérêts récents, basée sur leur interaction avec le système.
À l'échelle de MakeMyTrip, offrir cette expérience nécessite une latence inférieure à la seconde sur un pipeline de production desservant des millions d'utilisateurs quotidiens — pour les lignes d'activité de voyage grand public et d'entreprise. En implémentant le Mode Temps Réel (RTM) de Databricks — le moteur d'exécution de nouvelle génération dans Apache Spark™ Structured Streaming, MakeMyTrip a réussi à atteindre des latences de niveau milliseconde, tout en maintenant une infrastructure rentable et en réduisant la complexité de l'ingénierie.
L'équipe de données de MakeMyTrip avait besoin d'une latence inférieure à la seconde pour le flux de travail des hôtels "dernièrement recherchés" sur toutes les lignes d'activité. À leur échelle, même quelques centaines de millisecondes de retard créent des frictions dans le parcours utilisateur, impactant directement les taux de clics.
Le mode micro-batch d'Apache Spark introduisait des limites de latence inhérentes que l'équipe ne pouvait pas dépasser malgré un réglage approfondi — livrant constamment une latence d'une à deux secondes, beaucoup trop lente pour leurs exigences.
Ensuite, ils ont évalué Apache Flink sur environ 10 pipelines de streaming ce qui a résolu leurs exigences de latence. Cependant, l'adoption d'Apache Flink comme second moteur aurait introduit des défis importants à long terme :
Parce que MakeMyTrip n'a jamais voulu une architecture à double moteur, Apache Flink n'était pas une option viable à long terme. L'équipe a pris une décision architecturale délibérée : attendre qu'Apache Spark devienne plus rapide, plutôt que de fragmenter la pile.
Par conséquent, lorsque Apache Spark Structured Streaming a introduit le RTM, MakeMyTrip est devenu le premier client à l'adopter. Le RTM leur a permis d'atteindre une latence de niveau milliseconde sur Apache Spark — répondant aux exigences en temps réel sans introduire un autre moteur ni diviser la plateforme.
Maintenir deux moteurs signifie doubler la complexité et le risque de dérive logique entre les calculs par lots et en temps réel. Nous voulions une seule source de vérité — un pipeline basé sur Spark
Le RTM offre un traitement continu et à faible latence grâce à trois innovations techniques clés qui fonctionnent ensemble pour éliminer les sources de latence inhérentes à l'exécution par micro-lots :
Ensemble, ces innovations permettent à Apache Spark d'atteindre des pipelines à l'échelle de la milliseconde qui n'étaient auparavant possibles qu'avec des moteurs spécialisés. Pour en savoir plus sur la base technique du RTM, lisez ce blog, “Breaking the Microbatch Barrier: The Architecture of Apache Spark Real-Time Mode."

Le pipeline de MakeMyTrip suit un chemin haute performance :
L'utilisation du RTM dans votre requête de streaming ne nécessite pas de réécrire la logique métier ou de restructurer les pipelines. Le seul changement de code nécessaire est de définir le type de déclencheur sur RealTimeTrigger, comme montré dans l'extrait de code suivant :
La seule considération d'infrastructure : les slots de tâches du cluster doivent être supérieurs ou égaux au nombre total de tâches actives dans les étapes source et shuffle. L'équipe de MakeMyTrip a analysé leurs partitions Kafka, leurs partitions de shuffle et la complexité du pipeline à l'avance pour garantir une concurrence suffisante avant de passer en production.
En tant que premier adoptant du RTM, MakeMyTrip a travaillé directement avec l'ingénierie Databricks pour rendre le pipeline prêt pour la production. Plusieurs capacités ont nécessité une collaboration active entre les deux équipes pour être construites, réglées et validées.
Le RTM a permis une personnalisation instantanée et une réactivité améliorée, un engagement plus élevé mesuré par les taux de clics et une simplicité opérationnelle d'un moteur unifié unique. Les métriques clés sont présentées ci-dessous.
Le déploiement de MakeMyTrip prouve que RTM sur Spark offre la latence extrêmement faible dont vos applications temps réel ont besoin. Comme RTM est basé sur les mêmes API Spark familières, vous pouvez utiliser la même logique métier pour les pipelines batch et temps réel. Vous n'avez plus besoin de maintenir une seconde plateforme ou un codebase séparé pour le traitement en temps réel, et pouvez simplement activer RTM sur Spark avec une seule ligne de code.
Le mode temps réel nous a permis de compresser notre infrastructure et de proposer des expériences en temps réel sans gérer plusieurs moteurs de streaming. Alors que nous entrons dans l'ère des agents IA, les piloter efficacement nécessite de construire un contexte temps réel à partir de flux de données. Nous expérimentons avec Spark RTM pour fournir à nos agents le contexte le plus riche et le plus récent nécessaire pour prendre les meilleures décisions possibles. — Aditya Kumar, Associate Director of Engineering, MakeMyTrip
Pour en savoir plus sur le mode temps réel, regardez cette vidéo à la demande sur comment démarrer ou consultez la documentation.
(Cet article de blog a été traduit à l'aide d'outils basés sur l'intelligence artificielle) Article original
