Stellen Sie sich vor, Sie sind mit Ihrer Familie auf einem belebten Autobahnabschnitt unterwegs und nun schließen Sie Ihre Augen für einige Zeit. Würden Sie sich so in einer realen Situation verhalten? Als Fahrer sind Sie aufmerksam, überwachen die Instrumente und reagieren sofort auf sich ändernde Verkehrssituationen. Kurzum: Sie verarbeiten die Daten Ihrer Umgebung in Echtzeit. Diese ständige Aufmerksamkeit ist entscheidend für die Sicherheit Ihrer Familie.
Der Autor: Volker Janz ist Expert Data Engineer bei InnoGames
(Bild: Sabine Kayser / Fotostudio blendenspiel)
Auf die Geschäftswelt übertragen, heißt das: Wenn Ihr Unternehmen das Fahrzeug darstellt und Ihre Kollegen die Mitfahrer sind, dann sind die Daten die Instrumente, die den Zustand und die Leistung des Unternehmens widerspiegeln. In dieser Analogie wird deutlich, wie wichtig die Verarbeitung von Daten in Echtzeit für Unternehmen ist.
Traditionell denken wir bei Daten an statische Informationen, doch viele Daten werden in Echtzeit generiert und verlieren mit der Zeit an Wert. Ein Beispiel hierfür ist eine Navigations-App, die dem Benutzer sofortige Informationen über Verkehrsstaus liefert. Diese Dynamik gilt auch für viele andere Branchen. Die Fähigkeit, in Echtzeit auf die Bedürfnisse der Kunden zu reagieren, kann das Benutzererlebnis verbessern und die Wertschöpfung maximieren.
Für InnoGames, einem der führenden deutschen Entwickler von Mobile- und Browser-Spielen, ist die Interaktion mit dem Spiel der Hauptdatenstrom, der in Echtzeit verarbeitet wird. Entsprechend hat InnoGames ein großes Interesse daran, das Spielerlebnis und die Monetarisierung durch Echtzeit-Kundeninteraktion zu verbessern. Im Folgenden beschreibe ich die auf Open Source basierende Technik, die dafür verwendet wird, sowie die damit verbundenen Anwendungsfälle, Erfolgsgeschichten und Herausforderungen.
Apache Kafka – ein zentraler Baustein für Datenströme im Gaming
InnoGames hat aktuell über 300 Millionen registrierte Spieler. Die aktiven Spieler unter ihnen erzeugen durch ihre Interaktion mit den Spielen einen kontinuierlichen Datenstrom von Ereignissen. Jedes Ereignis, sei es das Bauen eines Gebäudes oder der Verlust einer Kampfeinheit, wird erfasst und benötigt eine effiziente Speicherlösung. Hier kommt Apache Kafka zum Einsatz.
Kafka ist eine Open-Source-Streaming-Plattform, die für die Echtzeitverarbeitung von Datenströmen und die Integration von Daten in großem Umfang eingesetzt wird. Ursprünglich bei LinkedIn entwickelt, hat sich Kafka seit der Einführung im Jahr 2011 zu einer umfassenden Event-Streaming-Plattform entwickelt. Sie besteht aus einem verteilten System von Brokern, die Datenströme in logische Partitionen unterteilen. So kann jedes Spiel eine eigene Partition verwenden, um die Verarbeitung zu vereinfachen. Eine Partition besteht wiederum aus Segmenten, von denen jedes als Datei auf den Festplatten der Broker gespeichert wird. Über diverse Konfigurationsparameter kann die Menge und Größe dieser Segmente kontrolliert werden.
InnoGames nutzt Kafka, um täglich über 1,7 Milliarden Ereignisse zur weiteren Verarbeitung zu erfassen, was etwa 20.000 Datensätzen pro Sekunde entspricht. Obwohl es alternative Cloud-basierte Lösungen wie Amazon Kinesis oder Google Cloud Pub/Sub sowie andere Open-Source-Projekte wie RabbitMQ gibt, hat sich Kafka für InnoGames als ideale Lösung herauskristallisiert. Die Flexibilität in der Datenverarbeitung und der kosteneffiziente Datendurchsatz machen Kafka zur bevorzugten Plattform für die Speicherung von Datenströmen in Echtzeit.
Apache Flink – die Kraft der Echtzeit-Datenstrom-Verarbeitung
Apache Flink ist ein Open Source Framework und eine verteilte Plattform für die Verarbeitung von kontinuierlichen und begrenzten Datenströmen. Es wurde entwickelt, um Berechnungen mit hoher Geschwindigkeit, Flexibilität und in beliebiger Skalierung durchzuführen.
Ein kontinuierlicher Datenstrom hat einen definierten Anfang, aber kein Ende. Hierbei handelt es sich also um einen klassischen Datenstrom. Ein begrenzter Datenstrom hat dagegen einen definierten Anfang und ein definiertes Ende. Diese Art von Daten kann auch als Stapeldaten betrachtet werden. Somit erlaubt Flink das Verarbeiten von Daten in Form von Stream Processing und Batch Processing.
Eine Flink-Applikation besteht aus verschiedenen Komponenten wie Datenquellen, Transformationen und Datensenken. Die Verarbeitungslogik kann über verschiedene Schnittstellen definiert werden, darunter die SQL- oder Table-API für die Verarbeitung von Daten mittels SQL und die DataStream-API für die Zusammenstellung vordefinierter Bausteine mit Java, Python oder Scala. Darüber hinaus bieten Prozessfunktionen eine Schicht maximaler Flexibilität, da sie in Java oder Scala mit beliebiger Logik implementiert werden können.
Flink ermöglicht sowohl die zustandslose als auch die zustandsbehaftete Verarbeitung von Datenströmen. Zustandslose Verarbeitung betrachtet jedes Ereignis unabhängig, also ohne historische Informationen, während eine zustandsbehaftete Verarbeitung die Analyse von Ereignissen innerhalb definierter Fenster erlaubt. Minimale Latenz, hohe Durchsatzrate und die nahtlose Integration mit Systemen wie Kafka machen Flink zu einem leistungsstarken Werkzeug für die Verarbeitung von Datenströmen.
Stand: 08.12.2025
Es ist für uns eine Selbstverständlichkeit, dass wir verantwortungsvoll mit Ihren personenbezogenen Daten umgehen. Sofern wir personenbezogene Daten von Ihnen erheben, verarbeiten wir diese unter Beachtung der geltenden Datenschutzvorschriften. Detaillierte Informationen finden Sie in unserer Datenschutzerklärung.
Einwilligung in die Verwendung von Daten zu Werbezwecken
Ich bin damit einverstanden, dass die Vogel IT-Medien GmbH, Max-Josef-Metzger-Straße 21, 86157 Augsburg, einschließlich aller mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen (im weiteren: Vogel Communications Group) meine E-Mail-Adresse für die Zusendung von Newslettern und Werbung nutzt. Auflistungen der jeweils zugehörigen Unternehmen können hier abgerufen werden.
Der Newsletterinhalt erstreckt sich dabei auf Produkte und Dienstleistungen aller zuvor genannten Unternehmen, darunter beispielsweise Fachzeitschriften und Fachbücher, Veranstaltungen und Messen sowie veranstaltungsbezogene Produkte und Dienstleistungen, Print- und Digital-Mediaangebote und Services wie weitere (redaktionelle) Newsletter, Gewinnspiele, Lead-Kampagnen, Marktforschung im Online- und Offline-Bereich, fachspezifische Webportale und E-Learning-Angebote. Wenn auch meine persönliche Telefonnummer erhoben wurde, darf diese für die Unterbreitung von Angeboten der vorgenannten Produkte und Dienstleistungen der vorgenannten Unternehmen und Marktforschung genutzt werden.
Meine Einwilligung umfasst zudem die Verarbeitung meiner E-Mail-Adresse und Telefonnummer für den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern wie z.B. LinkedIN, Google und Meta. Hierfür darf die Vogel Communications Group die genannten Daten gehasht an Werbepartner übermitteln, die diese Daten dann nutzen, um feststellen zu können, ob ich ebenfalls Mitglied auf den besagten Werbepartnerportalen bin. Die Vogel Communications Group nutzt diese Funktion zu Zwecken des Retargeting (Upselling, Crossselling und Kundenbindung), der Generierung von sog. Lookalike Audiences zur Neukundengewinnung und als Ausschlussgrundlage für laufende Werbekampagnen. Weitere Informationen kann ich dem Abschnitt „Datenabgleich zu Marketingzwecken“ in der Datenschutzerklärung entnehmen.
Falls ich im Internet auf Portalen der Vogel Communications Group einschließlich deren mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen geschützte Inhalte abrufe, muss ich mich mit weiteren Daten für den Zugang zu diesen Inhalten registrieren. Im Gegenzug für diesen gebührenlosen Zugang zu redaktionellen Inhalten dürfen meine Daten im Sinne dieser Einwilligung für die hier genannten Zwecke verwendet werden. Dies gilt nicht für den Datenabgleich zu Marketingzwecken.
Recht auf Widerruf
Mir ist bewusst, dass ich diese Einwilligung jederzeit für die Zukunft widerrufen kann. Durch meinen Widerruf wird die Rechtmäßigkeit der aufgrund meiner Einwilligung bis zum Widerruf erfolgten Verarbeitung nicht berührt. Um meinen Widerruf zu erklären, kann ich als eine Möglichkeit das unter https://contact.vogel.de abrufbare Kontaktformular nutzen. Sofern ich einzelne von mir abonnierte Newsletter nicht mehr erhalten möchte, kann ich darüber hinaus auch den am Ende eines Newsletters eingebundenen Abmeldelink anklicken. Weitere Informationen zu meinem Widerrufsrecht und dessen Ausübung sowie zu den Folgen meines Widerrufs finde ich in der Datenschutzerklärung.
Personalisierte Spielerlebnisse in Sekundenschnelle
Systemübersicht
(Bild: InnoGames)
Der folgende Abschnitt beschreibt das Real-Time-CRM-System bei InnoGames, das auf den oben genannten Technologien basiert. Konzeptionell lässt sich dieses System jedoch auch auf andere Anwendungsfälle wie die Interaktion mit Webseiten oder Apps im Allgemeinen übertragen.
Als Beispiel dient der Verlust einer Kampfeinheit im Spiel. Dieses Ereignis wird zuerst in einem Kafka-Topic im JSON-Format gespeichert, welches sich in den meisten Sprachen leicht verarbeiten lässt. Eine Flink-Anwendung liest dann dieses Ereignis und konvertiert es in ein Java-Objekt. Dazu wird eine Flink-Map-Funktion verwendet. Anschließend wird das Ereignis an eine Prozessfunktion weitergeleitet, die eine Liste definierter Regeln überprüft.
Jede Regel entspricht einer Kampagne, die festlegt, wie auf das Ereignis reagiert werden soll. In unserem Beispiel wird eine Kampagne angewendet, die vorsieht, dass bei Verlust einer bestimmten Einheit dem Spieler ein spezielles Angebot angezeigt wird. Die Information darüber, dass dieses Angebot angezeigt werden soll, wird dann über eine Datensenke durch Flink in einem weiteren Kafka-Topic gespeichert, das vom Spiel verarbeitet wird, um das Angebot im Spiel anzuzeigen. Auf diese Weise erhalten Spieler maßgeschneiderte Angebote genau im richtigen Moment, mit einer minimalen Latenz von nur wenigen Millisekunden.
Um Kampagnen zur Laufzeit definieren und ändern zu können, wird ein spezielles Entwurfsmuster aus dem Bereich Stream Processing verwendet: das sogenannte Broadcast State Pattern. Dabei wird ein zusätzliches Kafka-Topic eingesetzt, das mit geringer Frequenz aktualisiert wird, da es nur neue Kampagnen oder Änderungen an bestehenden Kampagnen erhält. Das ermöglicht die langfristige Speicherung, und die Flink-Anwendung wird bei jeder Aktualisierung benachrichtigt, sodass die Komponenten ihren Zustand mit den neuen Regeln aktualisieren können.
Anwendungsfälle, Herausforderungen und Zukunftsausblick
Ein Screenshot des Spiels „Elvenar“
(Bild: InnoGames)
Die Reaktion auf bestimmte Interaktionen bietet Vorteile für die Monetarisierung und die Optimierung des Kunden-Erlebnisses. Ein Beispiel hierfür ist die Möglichkeit, dem Spieler in unserem Spiel Elvenar kostenlose Zauberspruchpakete anzubieten, wenn er bestimmte Funktionen nach dem Bau der magischen Akademie nicht innerhalb eines Zeitraums nutzt. Das motiviert den Spieler, diese Funktionen zu testen, und verbessert so sein Spielerlebnis.
Die Komplexität eines verteilten Systems, die große Menge an Daten und der Bedarf, Mitarbeitern den einfachen Zugang zu diesen Daten zu ermöglichen, stellen jedoch auch eine große Herausforderung dar. Ein iterativer Aufbau des Systems in kleinen Schritten, kurze Feedback-Zyklen und agile Kommunikation sind entscheidend für den Erfolg. Nur so können Anwendungsfälle und Systeme gleichermaßen skaliert werden.
Die Zukunft dieses Systems bietet Möglichkeiten zur weiteren Automatisierung des Kampagnenmanagements. Die Integration von Maschinellem Lernen und Künstlicher Intelligenz wird bereits untersucht und verspricht viel Potenzial. Dabei sind eine schrittweise Herangehensweise und sorgfältige Evaluation entscheidend für die Entwicklung eines kontrollierten Systems.
Die Verarbeitung von Datenströmen in Echtzeit ermöglicht es, Daten in ihrer natürlichen Form zu verarbeiten. Dieser Anwendungsfall zeigt, dass Echtzeit-Verarbeitung von Datenströmen nicht nur für die Überwachung und Berichterstattung relevant ist, sondern auch großes Potenzial für das aktive Reagieren in Echtzeit bietet. Daher sollten die Augen nicht nur während eines Familienausflugs offengehalten werden, sondern auch während des laufenden Betriebs im Unternehmen.
Eine Open-Source-Variante des beschriebenen Anwendungsfalls kann zu Lernzwecken unter folgenden Links gefunden werden: