Microservices ist ein Architekturstil für die Erstellung von Applikationen, bei dem der Ansatz verfolgt wird, eine komplette Applikation basierend auf feingranularen, lose gekoppelten Komponenten – den Microservices – aufzubauen. Jeder Microservice funktioniert dabei für sich autonom und kann unabhängig weiterentwickelt und deployed werden. Natürlich ist so ein Microservice selten komplett autonom, er muss sich mit weiteren Microservices austauschen können, dies einfach auf eine möglichst lose gekoppelte Art und Weise.
Aus der traditionellen Sicht der Service-orientierten Architekturen (SOA) denkt man hier schnell an Service-Schnittstellen, einfach nicht mehr über SOAP- sondern über REST-Schnittstellen. Daraus hat sich auch der Hype rund um APIs und API-Management entwickelt. Eine API- bzw. Service-Schnittstelle ist jedoch meistens eine synchrone Angelegenheit und hat aus Sicht loser Koppelung einige Nachteile. Oft viel besser wäre die asynchrone Kommunikation, d. h. über den Austausch von Nachrichten. Hier kommt der Event Hub bzw. Apache Kafka ins Spiel, ein moderner Message Broker, der horizontale Skalierbarkeit mit höchster Verfügbarkeit und Durchsatz ermöglicht.
Dieser Vortrag zeigt, wie sich mit Hilfe des Kafka Ecosystems Microservice-Architekturen aufbauen lassen, die mehrheitlich asynchron kommunizieren und nur dann, wenn es erforderlich ist, auf synchrone Schnittstellen (APIs) zurückgreift. Kafka hat dabei einige Eigenschaften an Bord, die sich hervorragend für die Umsetzung solcher Architekturen eignen und diese optimal unterstützen.