Event-Streaming und Kafka für E-Commerce Plattformen
tarent Blog

Event-Streaming und Kafka für E-Commerce Plattformen

04.08.2020 Posted 3 Jahren ago Dino Omanovic

Microservices, Cloud, Skalierbarkeit

Event-Streaming mit Kafka für E-Commerce Plattformen

E-Commerce ist mehr als ein einfacher Webshop mit ein paar Produkten. Heute geht es um Integration von Kundenservices, Anbindung von großen Bestandssystemen, Cross-Channel-Integration mit dem stationären Handel, verschiedenen Marktplatz-Anbietern und vieles mehr.

Um diese Anforderungen zu meistern, werden oft mehrere parallel arbeitende Teams benötigt, damit die Plattform schnell um neue Features erweitert werden kann. Besonders mit Blick auf den starken Konkurrenzdruck ist es wichtig, schnell auf Kundenbedürfnisse reagieren zu können, um sich einen Wettbewerbsvorteil zu verschaffen.

Um dieses Maß an Parallelität zu ermöglichen, setzen große E-Commerce Anbieter auf Architekturmuster wie Microservices, Self-contained Systems, Säulenarchitekturen etc. Zur Bewältigung von Nachfragespitzen und mit geringerem Verwaltungsaufwand wird immer mehr auf Cloud-Hosting gesetzt.

All dies verlagert zunehmend mehr Komplexität der eigentlichen Business-Logik in die IT-Infrastruktur. Wo vorher im Webshop ein paar Zeilen Code gereicht haben, benötigt man häufig neue Komponenten, Services, Adapter, Datenbanken usw. Wie soll man da den Überblick behalten? Wie verhindern wir, dass die Plattform wie ein Kartenhaus zusammenbricht, wenn einzelne Teile ausfallen?

Daten im Zentrum

Event-Streaming mit Kafka für E-Commerce Plattformen

Daten sind das Wichtigste in modernen Plattformen. Wieviel kostet das Produkt? Wann kann es geliefert werden? Was hat der Kunde in der Vergangenheit gekauft und was kann man ihm noch anbieten?

Erst wenn wir verstehen, welche Daten wir brauchen und welche wir schon haben – und erst wenn wir die Kontrolle über diese Daten erlangen, können wir fundierte Entscheidungen treffen: Welche Features machen Sinn? Vor welchen Herausforderungen stehen wir?

Unsere komplexe IT-Architektur ist also nur als ein Mittel für den Erhalt, die Verarbeitung und die Darstellung von Daten zu sehen! Wenn ich diese Daten nicht zentral verfügbar habe, sondern sie auf dutzende verschiedene Systeme und Technologien verteile, wird jeder Erkenntnisgewinn zu einem großen Unterfangen. Entscheidungen dauern lange oder haben keine empirische Basis. Features, welche Daten aus verschiedenen Quellen brauchen, sind fast nicht umsetzbar und kosten viel Schweiß und Geld.

Kafka als zentrale Datenhaltung

Event-Streaming mit Kafka für E-Commerce Plattformen

Kafka ist eine Möglichkeit, Daten und Ereignisse in einer IT-Architektur zentral und ausfallsicher vorzuhalten und zu verwalten. Dabei ist Kafka grundsätzlich verschieden zu einer klassischen Datenbank, denn wir reden hier nicht von Tabellen und Spalten sondern von Topics (Themen). Wir können thematisch zusammenhängende Daten in diese Topics schreiben und bei Bedarf sequenziell lesen. Die Daten werden eine gewisse Zeit vorgehalten und/oder basierend auf ihrer ID erneuert. Das war es!

Das hört sich im Vergleich zu konventionellen Datenbanken, bei denen wir komplexe Strukturen und Abfragen aufbauen können, erst einmal nach einem Nachteil an. Doch in dieser Einfachheit liegt ein großer Vorteil, den wir für unsere E-Commerce Plattformen nutzen.

Anstatt Schnittstellen oder Datenbankdesign zu kennen, müssen wir einfach wissen, für welches Thema wir uns interessieren. Anstatt einen Microservice zu erstellen, bevor wir Daten aus einem Bestandssystem übernehmen können, legen wir diese einfach in Kafka und können uns dann überlegen, was wir mit ihnen machen.

Die Daten sind immer in Kafka vorhanden, ohne dass es Anforderungen an eine spezifische Struktur gibt. Team A schreibt seine Daten in Kafka, andere Teams können sie lesen, ohne sich abzusprechen. Der Microservice von Team A fällt aus? Kein Problem, die Daten liegen hochverfügbar und ausfallsicher in Kafka. Unsere Plattform funktioniert weiter, selbst wenn ein großer Teil von Services ausfallen sollte.

Datenhaltung und Analyse trennen

Event-Streaming mit Kafka für E-Commerce Plattformen

Anstatt unsere Datenhaltung anhand der aktuellen Anforderungen zu strukturieren, gestehen wir uns ein, keine Kristallkugel zu besitzen. Die Daten sollen für alle einfach zugänglich sein. Wenn es spezielle Anforderungen gibt, eine Produktsuche zum Beispiel, dann befüllen wir aus unserem Datenschatz in Kafka eine spezialisierte Suchdatenbank. Kafka ist optimiert darauf, große Datenmengen sequentiell zu speichern und zu lesen und dient somit als Quelle für spezialisierte Technologien.

Wenn diese meine Anforderungen nicht mehr ausreichend erfüllen oder sich die Anforderungen geändert haben, gibt es keinen Aufwand der Datenmigration. Bereichsübergreifende Features erfordern keinen Mehraufwand, schließlich muss ich mich nicht mit anderen Stakeholdern abstimmen und Schnittstellen anpassen. Die Daten liegen für mich bereit.

Auf alles vorbereitet

Event-Streaming mit Kafka für E-Commerce Plattformen

Im Gegensatz zu Architekturen mit synchronen Kommunikationsformen ist das Schreiben und die Verarbeitung von Daten entkoppelt und es ist kein Problem, wenn die Verarbeitung länger dauert. Ein Konsument von Informationen kann diese in seiner eigenen Geschwindigkeit verarbeiten. Somit bleibt die Entscheidung, ob eine Skalierung erfolgen muss, in unserer Hand – und damit auch die Kontrolle über die Plattformkosten. 

Auch Lastspitzen im Onlinehandel, wie beispielsweise bei der Corona Krise oder dem Weihnachtsgeschäft, stellen so kein Problem dar, da die Skalierung nicht durch meine bestehende Datenbankinstanz gedeckelt ist. Anstatt diese auf immer größere und teurere Konfigurationen zu migrieren, kann ich einfach je nach Bedarf skalieren. Im Gegensatz zu vielen Cloud-Datenbanklösungen ist das Zurückkehren in eine günstigere Konfiguration kein Problem.

Fazit

Kafka als zentrales Plattformelement bietet sich für alle an, die in einem großen, dynamischen E-Commerce-Kontext arbeiten und sowohl mehrere Teams als auch ständig wechselnde Requirements managen müssen. Das Umdenken erfordert natürlich einen Mehraufwand, dieser zahlt sich mit der Zeit aber immer mehr aus und kann manche Vorteile gegenüber der Konkurrenz erst möglich machen.

 

Sie möchten skalierbare und ganzheitliche Lösungen für Ihren Shop?

Als Spezialisten im E-Commerce mit langjähriger Erfahrung bei großen Kunden bieten wir von der Plattformentwicklung bis zur Performanceoptimierung und KI-Lösungen umfangreiche E-Commerce-Lösungen.

Oder sind Sie gerade erst am Anfang Ihrer Digitalstrategie?

Starten Sie in Sachen Digitalisierung direkt durch mit unserem Digital Kickoff.

Sind Sie im produzierenden Gewerbe oder in der Industrie tätig?

Schauen Sie sich doch unsere Offerings zu Smart Factory und IoT an.