In diesem Workshop wird eine bestehende Web-Shop-Anwendung, die mit Spring Boot entwickelt wurde, um User Tracking erweitert. Im ersten Teil des Workshops werden die benötigen Konzepte von Spring Boot und Apache Kafka vorgestellt.

Im zweiten Teil wird das theoretisch vermittelte Wissen dann praktisch angewendet, indem die Shop-Anwendung ausgebaut wird. Nachdem viele Events über das Verhalten der Nutzer auf der Webseite gesammelt wurden, werden anschließend mit Kafka Streams und KSQL verschiedene Abfragen und Analysen implementiert, um Business Events zu ermitteln.

Seminarinhalt

In einer Welt, in der immer mehr Daten anfallen, werden Werkzeuge benötigt, um diese große Mengen effektiv verarbeiten zu können. Apache Kafka ist solch ein Tool, das zum Einen eine Verarbeitung enormer Datenmengen in Echtzeit ermöglicht und zum Anderen ein zentraler Hub im Unternehmen darstellt, um Daten via publish/subscribe zu integrieren. Schwerpunkt dieses Workshops sind die Grundkonzepte bei der Entwicklung mit Apache Kafka. Es wird erläutert, wie die Architektur von Kafka Skalierbarkeit und Parallelität sicherstellt. Um die theoretischen Konzepte zu festigen, wird im zweiten Teil eine bestehende Web-Shop-Anwendung um Activity Tracking erweitert. Activity Tracking ist der ursprüngliche Use Case von Kafka, als es bei LinkedIn entwickelt wurde. Hier werden Daten über das Verhalten der Nutzer in einer Anwendung gesammelt, um sinnvolle Business-Events zu ermitteln. Zunächst werden Metriken wie Seitenaufrufe, Klicks und Suchanfragen als Events an Kafka gesendet werden. Anschließend werden mit der Kafka Streams Bibliothek verschiedene Algorithmen implementiert, um z. B. Statistiken über Seitenaufrufe und Korrelationen von Suchanfragen zu erstellen (welche Ergebnisse haben Nutzer interessiert)?

  • Was ist Apache Kafka?
  • Grundlagen und Konzepte (Architektur, Messages und Batches, Topics und Partitionen, Producer und  Consumer, Broker und Cluster)
  • Kafka Producers (Producer Konfiguration, Nachrichten an eine Topic senden, Serialisierer)
  • Kafka Consumer (Consumer Konfiguration, Nachrichten einer Topic verarbeiten, Consumer Groups, Commits und Offsets, Rebalancing, Deserialisierer)
  • Stream Processing (Konzepte: Zeit, Zustand und Table-Stream Dualität, Anwendungsfälle, Stream Topologie, Design Patterns (Single Event Processing, Local State Processing, Stream Join))

Zielgruppe

Anwendungsentwickler, IT Berater, Daten/Business Analysten, ETL-Entwickler, Studierende der Informatik oder Wirtschaftsinformatik.

Voraussetzungen

Dieser Kurs setzt voraus, dass die Teilnehmer Java 8 beherrschen und mit den Gundkonzepte der Webentwicklung vertraut sind. Die Inhalte werden in Vortragsform vermittelt und anhand konkreter Beispiele verdeutlicht.

Die Teilnehmer benötigen

  • Java- (und vorzugsweise Spring-Boot-)Kenntnisse
  • Eclipse in einer aktuellen Version
  • Maven
  • ggf. einen Browser
  • eine lokale Kafka-Installation KANN verwendet werden, wenn Teilnehmer bereits damit vertraut sind. Ansonsten stellen wir auch eine zentrale Kafka-Instanz via AWS bereit, die verwendet werden kann.