Orchestrierung von Microservices ( 14. November 2017 )

Der Trend geht klar zu (Micro-)services und komplexen verteilten Systemen. Aber wie kann aus einem Haufen Services ein technisch funktionierender “Flow” entstehen, der einen übergreifenden fachlichen Geschäftsprozess abbildet? Welche Probleme bringen rein event-getriebene Systeme mit sich? Welche Art der Kollaboration zwischen den Services ist erwünscht? Wie können besonders lang laufende Prozesse berücksichtigt werden? Wie kann ich fachliche Transaktionen ohne Two-Phase-Commit – aber mit dem Saga Pattern umsetzen? Was bedeutet all dies für uns, die Entwickler?

In diesem Vortrag werden ich anhand einer Beispielanwendung (verfügbar auf GitHub) und Live-Hacking zeigen, wie eine sinnvolle Architektur aufgebaut werden kann. Dazu verwende ich Java, Spring Boot, Apache Kafka und Camunda. Ich zeige Limitierungen rein ereignisbasierter Architekturen auf und diskutiere Kopplung. Ich beschreiben die Auswirkung verschiedener Lösungsvarianten auf die Änderbarkeit des Gesamtsystems. Außerdem zeige ich warum die Einführung einer leichtgewichtigen Zustandsmaschine keinesfalls zentrale Steuerung bedeuten muss. Der Vortrag ist gespickt mit Praxiserfahrungen aus realen Kundenprojekten.

Sprecher

Bernd Rücker entwickelt seit über 15 Jahren Software, meist in einer Welt, die von Konsistenz, Transaktionalität und Monolithen beherrscht wird. In dieser Zeit hat er zahlreichen Kunden dabei geholfen, langlaufende “Flows” umzusetzen, so z.B. der Bestellprozesse bei Zalando, Auftragsprozesse bei T-Mobile oder Patenanträge in der Schweiz. Außerdem hat er das “Praxishandbuch BPMN” geschrieben, aktiv an der Entwicklung verschiedener Open Source Workflow Engines mitgearbeitet und die Camunda mitgegründet. Seit geraumer Zeit beschäftigt er sich mit “Flows” in neuen Paradigmen rund um die Schlagworte Microservices, Domain Driven Design, Event Driven Architecture und Reactive Systems. Er spricht regelmäßig auf Konferenzen und schreibt für verschiedene Magazine.