Apache Kafka: Messaging- und Streaming-Plattform für hochskalierbare Systeme
Apache Kafka ist eine quelloffene Plattform für Event Streaming, Messaging und Stream Processing. Sie speichert Ereignisse als verteiltes Log, stellt diese für Anwendungen schnell und zuverlässig bereit und bildet damit das Rückgrat moderner Event-Driven Architectures, Microservices, Change-Data-Capture-Pipelines und Echtzeit-Datenplattformen.
- 100 % Enterprise-Hardware
- Minutengenaue Abrechnung
- Nur bei uns: Cloud-Funktionen
Was ist Apache Kafka?
Die Software Apache Kafka ist eine plattformunabhängige Open-Source-Anwendung der Apache Software Foundation, deren Fokus auf der Speicherung, Übertragung und Verarbeitung von Datenströmen liegt. Das Projekt wurde ursprünglich von LinkedIn entwickelt und 2011 als Open-Source-Projekt veröffentlicht. Ziel war es zunächst, sehr große Mengen an Aktivitäts-, Log- und Metrikdaten zuverlässig zwischen Systemen zu übertragen.
Seitdem hat sich Apache Kafka von einem verteilten Publish-Subscribe-System zu einer umfassenden Event-Streaming-Plattform für moderne Datenarchitekturen wie Data Mesh entwickelt und bildet heute die Grundlage für Event-Driven Architectures und datengetriebene Anwendungen in Echtzeit. Unternehmen nutzen Kafka heute, um Ereignisse aus Anwendungen, Datenbanken, Logsystemen, IoT-Geräten oder Analyseplattformen in Echtzeit zu erfassen, dauerhaft vorzuhalten und an verschiedene Zielsysteme weiterzuleiten.
2014 gründeten mehrere ursprüngliche Kafka-Entwickler aus dem LinkedIn-Umfeld das Unternehmen Confluent. Confluent bietet mit der Confluent Platform und Confluent Cloud kommerzielle Erweiterungen und verwaltete Angebote rund um Apache Kafka an. Seit der Übernahme durch IBM im Jahr 2026 gehört Confluent als eigenständige Marke zum IBM-Portfolio. Der Kern von Apache Kafka bleibt jedoch ein Open-Source-Projekt unter der Apache-2.0-Lizenz.
Aufgrund der Historie wird Kafka häufig als Message Broker bezeichnet, weil die Event-Streaming-Plattform Messaging-Aufgaben übernehmen kann. Sie funktioniert aber nicht wie eine klassische Message Queue. Bei traditionellen Queues wie RabbitMQ werden Nachrichten nach erfolgreicher Verarbeitung in der Regel entfernt. Kafka speichert Ereignisse dagegen als fortlaufendes Log (in Topics). Dadurch können mehrere Consumer-Gruppen dieselben Ereignisse unabhängig voneinander lesen, erneut verarbeiten oder später für Analysen nutzen.
Welche Grundfunktionen bietet Apache Kafka?
Apache Kafka ist darauf ausgelegt, große Mengen an Datenströmen zuverlässig zwischen Anwendungen und Systemen zu übertragen. Die Plattform entkoppelt dabei Datenquellen und Zielsysteme. Producer schreiben Ereignisse in Kafka, Consumer lesen sie unabhängig davon aus. Dadurch müssen sendende und empfangende Systeme nicht gleichzeitig verfügbar sein.
Kafka zeichnet sich durch folgende Leistungen aus:
- Zwischenspeicherung: Ereignisse bleiben in Topics gespeichert, auch wenn ein Consumer vorübergehend nicht erreichbar ist.
- Lastentkopplung: Producer können Daten kontinuierlich schreiben, während Consumer sie in ihrem eigenen Tempo verarbeiten.
- Skalierung: Topics werden in Partitionen aufgeteilt und über mehrere Broker verteilt. Dadurch lässt sich die Verarbeitung parallelisieren.
- Fehlertoleranz: Partitionen können repliziert werden. Fällt ein Broker aus, können andere Broker die Daten weiter bereitstellen.
- Wiederholbarkeit: Consumer speichern ihren Lesefortschritt in Form von Offsets. Dadurch können sie nach Fehlern an definierter Stelle fortsetzen oder Daten erneut lesen.
- Transaktionen: Kafka unterstützt idempotente Producer-Operationen und transaktionales Schreiben. Dadurch lassen sich unter bestimmten Bedingungen innerhalb des Kafka-Ökosystems Exactly-once-Semantik für Lese-, Verarbeitungs- und Schreibvorgänge umsetzen.
Im Gegensatz zu einfachen Nachrichtenwarteschlangen ist Kafka nicht nur auf kurzfristige Zustellung ausgerichtet. Die Plattform speichert Ereignisse als geordnetes Log und macht sie für mehrere Anwendungen verfügbar. Damit eignet sie sich für Systeme, die hohe Verfügbarkeit, Echtzeitverarbeitung und langfristig nutzbare Datenströme benötigen.
Die Apache-Kafka-Architektur im Überblick
Die Apache-Kafka-Architektur ist auf verteilte Verarbeitung ausgelegt. Kafka speichert Ereignisse nicht in einer einzelnen zentralen Warteschlange, sondern verteilt sie über ein Cluster. Im Kern besteht die Architektur aus drei Ebenen:
- Producer schreiben Ereignisse in Kafka.
- Kafka organisiert diese Ereignisse in Topics (logische Container) und Partitionen (physische Skalierungseinheiten).
- Consumer lesen die Datenströme unabhängig voneinander aus.
Zusätzlich verwaltet Kafka die Cluster-Metadaten, also Informationen über Topics, Partitionen und Zuständigkeiten im Cluster. Diese Metadatenverwaltung erfolgte früher über Apache ZooKeeper, wird in aktuellen Kafka-Versionen aber durch Kafka KRaft direkt in Kafka selbst übernommen.

Broker, Topics und Partitionen
Ein Kafka-Cluster besteht aus mehreren Serverprozessen, die als Broker bezeichnet werden. Broker nehmen Ereignisse entgegen, speichern sie und stellen sie für lesende Anwendungen bereit. Damit Kafka hohe Datenmengen verarbeiten kann, werden eingehende Daten in Topics organisiert. Ein Topic ist ein logischer Datenstrom, etwa orders, payments, user-events oder server-logs.
Damit ein Topic skalierbar bleibt, wird es in Partitionen unterteilt. Jede Partition ist ein geordnetes, unveränderliches Log, an dessen Ende neue Ereignisse angefügt werden. Partitionen können über mehrere Broker verteilt und repliziert werden. So kann Kafka viele Schreib- und Lesezugriffe parallel verarbeiten und gleichzeitig Ausfallsicherheit bieten.
Producer und Consumer
Anwendungen, die Daten in Kafka schreiben, heißen Producer. Sie senden Ereignisse an Topics und bestimmen unter anderem Schlüssel, Serialisierung und weitere Metadaten. Kafka ordnet die Ereignisse anschließend den passenden Partitionen zu.
Anwendungen, die Daten aus Kafka lesen, heißen Consumer. Sie lesen Ereignisse aus Topics und speichern ihren Fortschritt über sogenannte Offsets. Mehrere Consumer können in einer Consumer Group zusammenarbeiten. Kafka verteilt die Partitionen eines Topics dann auf die Consumer dieser Gruppe. So lässt sich die Verarbeitung parallelisieren, ohne dass jedes Ereignis innerhalb derselben Gruppe mehrfach verarbeitet wird.
Ein zentraler Vorteil von Kafka besteht darin, dass verschiedene Consumer-Gruppen denselben Datenstrom unabhängig lesen können. Eine Anwendung kann zum Beispiel Bestellungen verarbeiten und eine andere Betrugsprüfung ausführen. Beide nutzen denselben Event Stream, ohne voneinander abhängig zu sein.
Der Paradigmenwechsel: von ZooKeeper zu KRaft
Historisch war Apache Kafka auf Apache ZooKeeper angewiesen. ZooKeeper verwaltete wichtige Cluster-Metadaten, etwa Informationen zu Brokern, Topics, Partitionen und Leader-Wahlen. Dieses Modell war über viele Jahre stabil, brachte aber zusätzlichen Betriebsaufwand mit sich: Kafka und ZooKeeper mussten separat installiert, überwacht, skaliert und aktualisiert werden.
Mit Kafka KRaft hat sich die Architektur grundlegend verändert. KRaft steht für „Kafka Raft“ und ersetzt ZooKeeper durch ein in Kafka integriertes Konsensprotokoll. Seit Kafka 4.0 läuft Kafka ausschließlich im KRaft-Modus. Cluster, die noch im ZooKeeper-Modus laufen, müssen vor einem Upgrade auf eine aktuelle Kafka-Version über eine geeignete Zwischenversion in den KRaft-Modus migriert werden.
Im KRaft-Modus verwaltet Kafka seine Metadaten selbst. Dafür nutzt Kafka ein Controller-Quorum, das Informationen zu Topics, Partitionen, ACLs, Brokern und weiteren Clusterbestandteilen in einem internen Metadaten-Log speichert. Dieses Log wird innerhalb von Kafka als internes, repliziertes Log gespeichert. Dadurch wird Kafka autarker, einfacher zu betreiben und besser skalierbar. Für die Praxis bedeutet das:
- Der Betrieb wird einfacher, weil kein separates ZooKeeper-Ensemble mehr nötig ist.
- Metadatenoperationen lassen sich effizienter durchführen.
- Controller-Failover und Cluster-Änderungen können schneller ablaufen.
- Die Kafka-Architektur wird verständlicher, weil Daten und Metadaten im Kafka-Ökosystem selbst verwaltet werden.
Technische Grundlagen: Die Kafka-Schnittstellen
Um Anwendungen den Zugriff auf Apache Kafka zu gewähren, stellt die Software verschiedene APIs bereit. Die fünf wichtigsten Schnittstellen sind die folgenden:
- Kafka Producer: Die Producer-API ermöglicht Anwendungen, Ereignisse an Kafka-Topics zu senden. Producer bestimmen unter anderem Topic, Key, Wert, Partitionierungslogik und Zustellkonfiguration.
- Kafka Consumer: Über die Consumer API lesen Anwendungen Ereignisse aus Topics. Consumer können einzeln oder in Consumer Groups arbeiten und ihren Lesefortschritt über Offsets steuern.
- Kafka Streams: Die Streams API ist eine Java-Bibliothek für Stream Processing. Anwendungen können Daten aus Kafka lesen, transformieren, aggregieren, anreichern und wieder in Kafka schreiben.
- Kafka Connect: Kafka Connect dient der Integration externer Systeme. Über wiederverwendbare Source- und Sink-Connectoren lassen sich Datenbanken, Dateisysteme, Suchmaschinen, Data Warehouses oder Cloud-Dienste mit Kafka verbinden.
- Kafka AdminClient: Der AdminClient dient der Verwaltung und Überwachung eines Kafka-Clusters. Damit lassen sich zum Beispiel Topics erstellen, Konfigurationen ändern, ACLs verwalten oder Cluster-Metadaten abfragen.
Die Kommunikation zwischen Clientanwendungen und einzelnen Servern des Apache-Clusters erfolgt über ein simples, leistungsstarkes und sprachenunabhängiges Protokoll auf Grundlage von TCP. Neben dem offiziellen Java-Client existieren Clients für zahlreiche andere Programmiersprachen, darunter Python, Go, C/C++, PHP, Ruby und .NET.
Einsatzszenarien für Apache Kafka
Apache Kafka ist von Beginn an für einen hohen Schreib- und Lesedurchsatz konzipiert worden. In Kombination mit den aufgezählten APIs sowie der hohen Skalierbarkeit, Replikation und dem wiederholbaren Lesen eignet sich die Plattform für verschiedene technische und geschäftliche Anwendungsfälle. Typische Einsatzszenarien sind:
- Event-Driven Architecture mit Kafka: In einer Event-Driven Architecture (EDA) kommunizieren Microservices asynchron über Ereignisse. Statt sich gegenseitig synchron per REST oder RPC aufzurufen, veröffentlichen Services Events wie
OrderCreated,PaymentConfirmedoderUserRegistered. Andere Services reagieren darauf, ohne den Producer zu blockieren. Das reduziert Kopplung, verhindert Kaskadenfehler und erleichtert unabhängige Skalierung. - Messaging und Systemintegration: Kafka kann als Messaging-Schicht zwischen Anwendungen dienen. Dabei eignet sich die Plattform besonders, wenn Nachrichten nicht nur kurzfristig zugestellt, sondern auch gespeichert, verteilt und später erneut gelesen werden sollen.
- Web-Analytics & User-Tracking: Kafka wird häufig zur Erfassung und Auswertung von Nutzerinteraktionen eingesetzt. Ereignisse wie Page Views, Klicks oder Käufe werden in Echtzeit gesammelt und können sowohl für Monitoring als auch für analytische Auswertungen genutzt werden.
- Change Data Capture mit Kafka: Datenbankänderungen können über Debezium und Kafka Connect in Echtzeit in Kafka gestreamt werden. Das ist nützlich für Datenreplikation, Outbox-Pattern, Synchronisierung von Suchindizes, analytische Pipelines und Microservice-Integration.
- Stream Processing: Mit Kafka Streams, Apache Flink oder ksqlDB lassen sich Datenströme während des Transports verarbeiten und Muster erkennen. Beispiele sind Aggregationen, Anreicherung mit Stammdaten, Echtzeit-Betrugserkennung, Sessionisierung oder Echtzeit-Monitoring.
- IoT-Datenverarbeitung: Kafka eignet sich für die Verarbeitung großer Mengen kontinuierlicher Sensordaten, etwa aus Industrieanlagen, Fahrzeugen oder Smart-Devices, und ermöglicht deren Weiterleitung an Analyse- und Monitoring-Systeme.
- Event Sourcing: Anwendungen können Ereignisse als zentrale Quelle des Systemzustands speichern. Der aktuelle Zustand wird aus der Ereignishistorie abgeleitet. Kafka eignet sich dafür vor allem bei hohen Datenmengen und mehreren unabhängigen Consumern.
- Log- und Metrikverarbeitung: Kafka kann Logdaten, Metriken und Traces aus verteilten Systemen sammeln und an Monitoring-, Observability- oder Analyseplattformen weiterleiten.
- Data Mesh und Echtzeit-Datenplattformen: In Data-Mesh-Architekturen können Fachdomänen eigene Datenprodukte bereitstellen. Kafka dient dabei als Echtzeit-Rückgrat, über das Daten zwischen Domänen, Plattformen und Analysewerkzeugen verteilt werden.
In realen Architekturen treten diese Szenarien selten isoliert auf. Häufig wird Kafka gleichzeitig für Messaging, Event Streaming und Datenintegration eingesetzt und bildet damit das Rückgrat moderner, eventgetriebener Systeme.
Wie wird Apache Kafka heute betrieben?
Apache Kafka kann auf unterschiedliche Weise betrieben werden. Die passende Variante hängt von Kontrolle, Budget, Compliance-Anforderungen, internem Know-how und Skalierungsbedarf ab.
Self-Managed auf Bare Metal oder Cloud-Servern
Im Falle der Selbstverwaltung übernimmt das eigene Team die Einrichtung des Kafka-Clusters sowie die Konfiguration und den laufenden Betrieb der Plattform. Das kann auf Bare-Metal-Servern, virtuellen Maschinen oder leistungsstarken Cloud-Servern erfolgen. Diese Variante bietet maximale Kontrolle über Betriebssystem, Netzwerk, Storage, Broker-Konfiguration, Security, Upgrade-Zyklen und Monitoring.
Self-Managed Kafka eignet sich vor allem für Organisationen mit erfahrenen Platform- oder Data-Engineering-Teams, strengen Compliance-Vorgaben oder sehr spezifischen Anforderungen an Netzwerk, Datenresidenz und Performance. Der Nachteil liegt im Betriebsaufwand: Teams müssen Kapazitätsplanung, Patching, Rebalancing, Backups, Security, Incident Response und Observability selbst übernehmen.
Cloud-native mit Kubernetes
Immer häufiger wird Apache Kafka in Kubernetes-Clustern betrieben. Dafür kommen Operatoren wie Strimzi zum Einsatz. Strimzi automatisiert die Bereitstellung und Verwaltung von Kafka auf Kubernetes und bildet Kafka-Cluster, Topics, User, Kafka Connect und weitere Komponenten als Kubernetes-Ressourcen ab.
Dieses Modell passt gut zu Cloud-nativen Umgebungen, in denen Anwendungen, Stream-Prozessoren und Plattformdienste gemeinsam über Kubernetes bereitgestellt werden. Neben selbstverwalteten Kubernetes-Clustern kommen dafür auch Managed-Kubernetes-Dienste infrage, etwa IONOS Managed Kubernetes. Wichtig ist dabei, dass Kafka ein zustandsbehaftetes System ist. Storage, Netzwerk, Verfügbarkeit, Broker-Identitäten und Ressourcenlimits müssen sorgfältig geplant werden.
Managed Services
Bei vollständig verwalteten Angeboten wie Confluent Cloud übernimmt der Anbieter große Teile des Betriebs. Dazu gehören typischerweise Provisionierung, Wartung, Upgrades, Ausfallsicherung, Monitoring und Skalierung. Für Teams ohne eigenes Kafka-Betriebsteam kann ein Managed Service den Einstieg deutlich vereinfachen.
Managed Kafka reduziert den operativen Aufwand, ersetzt aber nicht die Architekturarbeit. Topic-Design, Partitionierung, Retention, Schema-Governance, Zugriffskontrolle, Datenflüsse und Consumer-Verhalten bleiben weiterhin Aufgaben des Entwicklungsteams. Außerdem sollten Kostenmodell, Datenresidenz, Netzwerkpfade und mögliche Anbieterabhängigkeiten geprüft werden.
Fazit
Apache Kafka ist heute weit mehr als eine Nachrichtenwarteschlange. Die Plattform verbindet Event Streaming, Messaging, Stream Processing und Datenintegration in einem verteilten System. Durch KRaft ist die Apache-Kafka-Architektur moderner und einfacher geworden, da Kafka seine Cluster-Metadaten ohne ZooKeeper selbst verwaltet.
Für Unternehmen, die Microservices entkoppeln, Datenbankänderungen in Echtzeit übertragen, Datenströme verarbeiten oder eine Event-Driven Architecture aufbauen möchten, ist Apache Kafka eine zentrale Technologie. Entscheidend für den Erfolg sind jedoch ein klares Topic-Design, saubere Governance, passende Betriebsmodelle und ein gutes Verständnis des Unterschieds zwischen klassischem Messaging und Event Streaming.
Lassen Sie sich von den Vorteilen überzeugen. Probieren Sie Ihren Virtual Server ganz in Ruhe 30 Tage lang aus!



