Unternehmen benötigen zunehmend Systeme, die umgehend auf eine Vielzahl von Triggern reagieren können, von Kundeninteraktionen bis hin zu Sensormessungen. Herkömmliche Anfrage-Antwort-Modelle sind zwar nützlich, bieten aber nicht immer die erforderliche Agilität oder Skalierbarkeit für diese dynamischen Umgebungen. Eine ereignisgesteuerte Architektur (EDA) kann ein leistungsstarkes Paradigma für die Entwicklung responsiver, robuster und skalierbarer Anwendungen sein. Es ist ein Softwarearchitekturmuster, das die Erstellung, Erkennung, Nutzung und Reaktion auf Ereignisse verbessern kann.
Eine ereignisgesteuerte Architektur ist ein Modell für das Design von Softwareanwendungen, bei dem Dienste lose gekoppelt sind und über die Erstellung und den Verbrauch von Ereignissen kommunizieren. Ein „Ereignis“ bezeichnet ein wichtiges Vorkommnis oder eine Änderung des Systemzustands. Das kann alles sein, von einer Kundenbestellung über einen Sensor, der eine Temperaturänderung erfasst, bis hin zu einer neuen Datei, die in den Speicher hochgeladen wird, oder einem aktualisierten Datenbankeintrag.
Im Gegensatz zu herkömmlichen anfragegesteuerten Modellen, bei denen ein Dienst explizit einen anderen aufruft und auf eine Antwort wartet, ermöglicht eine EDA den Diensten einen asynchronen Betrieb. Ein Dienst, der ein Ereignis erzeugt (der „Producer“ oder „Publisher“), gibt einfach bekannt, dass das Ereignis stattgefunden hat. Andere Dienste („Verbraucher“ oder „Abonnenten“), die an dieser Art von Ereignis interessiert sind, können dann unabhängig und in ihrem eigenen Tempo darauf reagieren.
Die wichtigsten Komponenten einer EDA sind in der Regel:
Der Workflow in einer ereignisgesteuerten Architektur folgt in der Regel einem konsistenten Muster.
Die Einführung einer ereignisgesteuerten Architektur kann zahlreiche Vorteile bieten, insbesondere für komplexe, verteilte Systeme.
Höhere Skalierbarkeit
Dienste in einer EDA sind lose gekoppelt und können unabhängig voneinander skaliert werden. Wenn ein Dienst zur Auftragsverarbeitung stark ausgelastet ist, können Sie nur diesen Dienst skalieren, ohne z. B. den Dienst für Nutzerbenachrichtigungen zu beeinträchtigen.
Höhere Ausfallsicherheit und Fehlertoleranz
Eine ereignisgesteuerte Architektur kann die Robustheit von Anwendungen verbessern, indem sie Dienstausfälle isoliert. Durch die Entkopplung wird sichergestellt, dass eine Fehlfunktion in einem Verbraucherdienst in der Regel nicht weitergegeben wird und keinen vollständigen Systemausfall verursacht.
Mehr Agilität und Flexibilität
Entwickler können Dienste hinzufügen, ändern oder entfernen, ohne dass sich dies auf andere Teile des Systems auswirkt. Neue Dienste können vorhandene Ereignisstreams abonnieren, um neue Funktionen hinzuzufügen, ohne dass Änderungen an den ursprünglichen Ereigniserstellern erforderlich werden.
Reaktionsfähigkeit in Echtzeit
Eine ereignisgesteuerte Architektur ermöglicht es Systemen, nahezu sofort auf Ereignisse zu reagieren. Diese Funktion ist besonders wertvoll für Anwendungen, bei denen schnelles Handeln entscheidend ist, wie Betrugserkennung, Echtzeitanalysen und Betriebsüberwachung.
Vereinfachte Integration
Eine EDA kann als flexibles Rückgrat für die Einbindung unterschiedlicher Systeme dienen, darunter Legacy-Anwendungen, moderne Mikrodienste und Dienste von Drittanbietern. Die einzelnen Systeme können Ereignisse veröffentlichen und aufnehmen, ohne direkte Punkt-zu-Punkt-Einbindungen mit jedem anderen System erforderlich zu machen.
Erweiterbarkeit
Das Hinzufügen neuer Funktionen oder das Reagieren auf bestehende Ereignisse auf neue Weise erfordert oft nur die Bereitstellung eines neuen Consumer-Dienstes, der den relevanten Ereignisstream abonniert.
Die EDA ist ein gängiges Muster, um die Kommunikation und den Datenfluss zwischen Mikrodiensten zu ermöglichen. Anstelle von direkten, synchronen API-Aufrufen, die eine enge Kopplung verursachen können, können Mikrodienste Ereignisse veröffentlichen, wenn sich ihr Zustand ändert. Andere Mikrodienste können diese Ereignisse abonnieren und entsprechend reagieren.
Anwendungen, die mit Datenströmen hoher Geschwindigkeit arbeiten, wie IoT-Sensordaten, Anwendungsprotokolle, Social-Media-Feeds oder Finanzmarktdaten, können eine EDA nutzen, um diese Informationen in Echtzeit zu verarbeiten, zu analysieren und auf sie zu reagieren. So lassen sich Dashboards, Warnsysteme oder automatisierte Entscheidungsprozesse unterstützen.
Von der Verwaltung der Lagerbestände in Reaktion auf Verkäufe über die Bearbeitung von Bestellungen in verschiedenen Phasen (Zahlung, Versand, Erfüllung) bis hin zum Senden von Kundenbenachrichtigungen kann eine EDA dazu beitragen, die komplexen, asynchronen Workflows zu verwalten, die im Onlinehandel üblich sind. Wenn ein Dienst zur Zahlungsabwicklung langsam ist, kann das Ereignis „Bestellung“ trotzdem von anderen Diensten wie der Bestandsreservierung erfasst und verarbeitet werden.
Viele Geschäftsprozesse sind inhärent ereignisgesteuert. Beispielsweise kann die Einreichung eines Versicherungsanspruchs (Ereignis) eine Reihe nachgelagerter Aktivitäten auslösen: Betrugsprüfung, Bewertung, Kundenkommunikation und schließlich Zahlungsabwicklung. Eine EDA kann helfen, solche Workflows effektiv zu modellieren und zu automatisieren.
Wenn Daten in mehreren Systemen oder Datenspeichern konsistent gehalten werden müssen, kann eine EDA verwendet werden. Eine Änderung in einer Datenbank (ein Ereignis) kann veröffentlicht werden, sodass andere Datenbanken oder Caches diese Änderungsereignisse abonnieren und sich selbst aktualisieren können.
Serverlose Funktionen (wie Cloud Run-Funktionen) sind oft ereignisgesteuert. Sie werden als Reaktion auf verschiedene Ereignistrigger ausgeführt, z. B. wenn ein Objekt in einen Cloud-Speicher hochgeladen wird, eine Nachricht in einer Warteschlange eintrifft oder eine HTTP-Anfrage gestellt wird. EDAs eignen sich hervorragend für die Entwicklung von Anwendungen mit serverlosen Komponenten.
Betrugserkennung in Echtzeit, Börsenüberwachung und Handelsverarbeitung sind wichtige Finanzanwendungen, die von der niedrigen Latenz und dem hohen Durchsatz einer EDA profitieren.
Google Cloud bietet eine robuste Suite an Diensten, mit denen Kunden leistungsstarke ereignisgesteuerte Anwendungen entwickeln und bereitstellen können. Die Plattform selbst nutzt ereignisgesteuerte Prinzipien, um skalierbare und resiliente Dienste bereitzustellen. Für Kunden, die ereignisgesteuerte Lösungen entwickeln, bietet Google Cloud mehrere wichtige verwaltete Dienste:
Profitieren Sie von einem Guthaben über 300 $, um Google Cloud und mehr als 20 „Immer kostenlos“-Produkte kennenzulernen.