Veröffentlicht: 7. April 2026
von Sitesh Sharma, Aditya Kumar und Navneeth Nair
Jede Millisekunde zählt, wenn Reisende nach Hotels, Flügen oder Erlebnissen suchen. Als Indiens größte Online-Reiseagentur konkurriert MakeMyTrip bei Echtzeit-Geschwindigkeit und Relevanz. Eine der wichtigsten Funktionen ist die "zuletzt gesuchten" Hotels: Wenn Benutzer die Suchleiste antippen, erwarten sie eine Echtzeit-personalisierte Liste ihrer letzten Interessen, basierend auf ihrer Interaktion mit dem System.
Bei der Größenordnung von MakeMyTrip erfordert die Bereitstellung dieser Erfahrung eine Latenz von unter einer Sekunde in einer Produktionspipeline, die täglich Millionen von Benutzern bedient – sowohl im Consumer- als auch im Corporate-Reisebereich. Durch die Implementierung des Real-Time Mode (RTM) von Databricks – der Ausführungs-Engine der nächsten Generation in Apache Spark™ Structured Streaming – erreichte MakeMyTrip erfolgreich Latenzen im Millisekundenbereich, während gleichzeitig eine kostengünstige Infrastruktur aufrechterhalten und die technische Komplexität reduziert wurde.
Das Datenteam von MakeMyTrip benötigte eine Latenz von unter einer Sekunde für den "zuletzt gesuchten" Hotels-Workflow über alle Geschäftsbereiche hinweg. In ihrer Größenordnung führt selbst eine Verzögerung von wenigen hundert Millisekunden zu Reibungsverlusten in der User Journey, was sich direkt auf die Klickraten auswirkt.
Der Micro-Batch-Modus von Apache Spark führte zu inhärenten Latenzgrenzen, die das Team trotz umfangreicher Optimierung nicht überwinden konnte – die Latenz lag durchweg bei ein bis zwei Sekunden, viel zu langsam für ihre Anforderungen.
Als Nächstes evaluierten sie Apache Flink für etwa 10 Streaming-Pipelines, was ihre Latenzanforderungen erfüllte. Die Einführung von Apache Flink als zweiter Engine hätte jedoch erhebliche langfristige Herausforderungen mit sich gebracht:
Da MakeMyTrip niemals eine Dual-Engine-Architektur wollte, war Apache Flink keine praktikable Langzeitoption. Das Team traf eine bewusste architektonische Entscheidung: auf Apache Spark zu warten, bis es schneller wird, anstatt den Stack zu fragmentieren.
Als Apache Spark Structured Streaming RTM einführte, wurde MakeMyTrip der erste Kunde, der es einsetzte. RTM ermöglichte es ihnen, Latenzen im Millisekundenbereich auf Apache Spark zu erreichen – und erfüllte damit die Echtzeitanforderungen, ohne eine weitere Engine einzuführen oder die Plattform zu splitten.
Die Wartung von zwei Engines bedeutet eine Verdoppelung der Komplexität und des Risikos von Logikabweichungen zwischen Batch- und Echtzeitberechnungen. Wir wollten eine einzige Quelle der Wahrheit – eine Spark-basierte Pipeline – anstatt zwei Engines zu pflegen. Real-Time Mode gab uns die Leistung, die wir brauchten, mit der Einfachheit, die wir wollten." — Aditya Kumar, Associate Director of Engineering, MakeMyTrip
RTM liefert kontinuierliche, latenzarme Verarbeitung durch drei wichtige technische Innovationen, die zusammenarbeiten, um die Latenzquellen zu eliminieren, die der Micro-Batch-Ausführung inhärent sind:
Zusammen ermöglichen diese Innovationen Apache Spark, Pipelines im Millisekundenbereich zu erreichen, die zuvor nur mit spezialisierten Engines möglich waren. Um mehr über die technische Grundlage von RTM zu erfahren, lesen Sie diesen Blogbeitrag: „Breaking the Microbatch Barrier: The Architecture of Apache Spark Real-Time Mode."

Die Pipeline von MakeMyTrip folgt einem Hochleistungspfad:
Die Verwendung von RTM in Ihrer Streaming-Abfrage erfordert keine Umschreibung der Geschäftslogik oder Umstrukturierung von Pipelines. Die einzige erforderliche Codeänderung ist die Einstellung des Trigger-Typs auf RealTimeTrigger, wie im folgenden Code-Snippet gezeigt:
Die einzige infrastrukturelle Überlegung: Cluster-Task-Slots müssen größer oder gleich der Gesamtzahl aktiver Tasks über Quell- und Shuffle-Stufen sein. Das Team von MakeMyTrip analysierte seine Kafka-Partitionen, Shuffle-Partitionen und die Pipeline-Komplexität im Voraus, um eine ausreichende Parallelität sicherzustellen, bevor es in die Produktion ging.
Als erster Anwender von RTM arbeitete MakeMyTrip direkt mit dem Databricks-Engineering zusammen, um die Pipeline produktionsreif zu machen. Mehrere Funktionen erforderten eine aktive Zusammenarbeit zwischen den beiden Teams, um sie zu entwickeln, zu optimieren und zu validieren.
RTM ermöglichte sofortige Personalisierung und verbesserte Reaktionsfähigkeit, höhere Engagement-Raten (gemessen an Klickraten) und operative Einfachheit durch eine einzige, einheitliche Engine. Die wichtigsten Metriken sind unten aufgeführt.
MakeMyTrips Bereitstellung beweist, dass RTM auf Spark die extrem niedrige Latenz liefert, die Ihre Echtzeitanwendungen benötigen. Da RTM auf denselben bekannten Spark-APIs aufbaut, können Sie dieselbe Geschäftslogik für Batch- und Echtzeit-Pipelines verwenden. Sie benötigen nicht mehr den Overhead der Wartung einer zweiten Plattform oder einer separaten Codebasis für die Echtzeitverarbeitung und können RTM auf Spark einfach mit einer einzigen Codezeile aktivieren.
Real-Time Mode hat es uns ermöglicht, unsere Infrastruktur zu komprimieren und Echtzeit-Erlebnisse zu liefern, ohne mehrere Streaming-Engines verwalten zu müssen. Da wir in das Zeitalter der KI-Agenten eintreten, erfordert deren effektive Steuerung den Aufbau von Echtzeit-Kontexten aus Datenströmen. Wir experimentieren mit Spark RTM, um unseren Agenten den reichhaltigsten und aktuellsten Kontext zu liefern, der für die bestmöglichen Entscheidungen notwendig ist. — Aditya Kumar, Associate Director of Engineering, MakeMyTrip
Um mehr über Real-Time Mode zu erfahren, sehen Sie sich dieses On-Demand-Video zum Einstieg an oder lesen Sie die Dokumentation.
(Dieser Blogbeitrag wurde mit KI-gestützten Tools übersetzt.) Originalbeitrag
