Ein fundamentaler Teil unserer Microservices-Umgebung bei REWE Digital ist Apache Kafka. Mit Kafka werden unsere Services untereinander integriert und tauschen so Daten entkoppelt und asynchron aus.
Die letzten 3 Jahre sind wir auf einige Überraschungen und Missverständnisse in der Nutzung gestoßen. Wir möchten euch ein grundsätzliches Verständnis von Kafka Topics vermitteln und zeigen, wie ihr mit Apache Kafka als Entwickler bspw. "at-least-once"-Semantiken umsetzt, die für eine klassische Message-Infrastruktur (AMQP/MSMQ/JMS) selbstverständlich sind.
Die Code-Beispiele sind in Java, Scala und Kotlin. Wir betrachten nicht den Betrieb des Kafka-Clusters sondern die Nutzung.