Bei Microservices erfreut sich die "Event-driven Architecture" großer Beliebtheit. Zumindest in der Theorie. Es gibt zahlreiche Vorträge und Artikel, die eine ereignisgesteuerte Architektur preisen, weil diese dabei hilft, die Skalierbarkeit und Zuverlässigkeit zu erreichen, die wir uns alle wünschen. Doch die meisten dieser Beschreibungen enden, bevor sie zur Implementierung komplexer Geschäftsprozesse kommen. Wie passen einzelne Services, die über Events kommunizieren, zu einem Workflow, der mehrere Domänen umspannt? Der eine durchgängige Verantwortlichkeit erfordert? In der Praxis greifen vielen Teams schnell (möglicherweise voreilig?) zurück auf „traditionelle“, nicht ereignisgesteuerte Optionen. Dazu gehören Prozessmanager, Workflow-Engines, und das Saga-Pattern. Geht das nicht anders? Dieser Vortrag wird Vor- und Nachteile verschiedener Ansätze untersuchen. Insbesondere wollen wir in die Tiefe gehen, was eine rein Event-basierte Implementierung angeht, basierend auf Events als Fakten, klare Abgrenzung von Verantwortung, Leistungsversprechen und Sichtbarkeit. Kopieren wir nicht einfach die Workflows, die in einem Monolithen funktionierten, in die verteilte Welt. Statt uns über die Bewältigung von Komplexität den Kopf zu zerbrechen – überlegen wir lieber, wie wir Komplexität reduzieren können!