Ereignisgesteuerte Architekturen mit Eventarc

Sie können Eventarc und Firestore im Datastore-Modus verwenden, um ereignisgesteuerte Architekturen zu erstellen. Firestore im Datastore-Modus bietet Trigger für Eventarc, mit denen Ereignisse durch Änderungen an einer bestimmten Entität in der Datenbank generiert werden. Der Trigger kann Ereignisse an ein unterstütztes Ziel weiterleiten:

Eventarc bietet eine standardisierte Lösung zur Verwaltung des Ablaufs von Statusänderungen, sogenannten Ereignissen, zwischen entkoppelten Mikrodiensten. Wenn sie ausgelöst wird, leitet Eventarc diese Ereignisse an verschiedene Ziele weiter und verwaltet die Bereitstellung, Sicherheit, Autorisierung, Beobachtbarkeit und Fehlerbehandlung für Sie.

Beispielanwendungsfälle

Eine ereignisgesteuerte Architektur ist ein Systemdesignmuster, bei dem Dienste auf Statusänderungen reagieren, die als Ereignisse bezeichnet werden. Sie können dieses Muster zusammen mit der Skalierbarkeit von Firestore verwenden, um Ihrer Anwendung weitere Features hinzuzufügen. Sie können beispielsweise die folgenden Funktionen hinzufügen:

  • Interoperabilität zwischen verschiedenen Technology Stacks

    Replizieren und transformieren Sie Ihre Daten, bevor Sie sie an ein Analysesystem senden.

  • Parallelverarbeitung

    Fan-Out-Vorgänge für die parallele Verarbeitung aus. Wenn Sie mehrere Systeme haben, die auf Entitätsänderungen basieren, können Sie die Push-basierten Streams bei jedem Nutzer verwenden und das Ereignis an mehrere Nutzer weiterleiten.

  • Push-basierte Ereignisstreams

    Push-basierte Messaging-Designs erstellen Clients können Benachrichtigungen erhalten, ohne Remote-Dienste abfragen zu müssen. Ohne die Abfragelatenz können Sie die Datenverarbeitung und Echtzeitanalysen schneller ausführen.

  • Statusüberwachung und -benachrichtigung

    Mit einer ereignisgesteuerten Architektur können Sie Ihren Datenbankvorgängen benutzerdefinierte Messwerte hinzufügen. Überwachen Sie Änderungen und Updates und erhalten Sie Benachrichtigungen. Anomalien erkennen.

Beschränkungen

Beachten Sie die folgenden Einschränkungen für Trigger im Datastore-Modus für Eventarc:

  • Die Reihenfolge ist nicht garantiert. Schnelle Änderungen können Ereignisse in einer unerwarteten Reihenfolge auslösen.
  • Ereignisse werden mindestens einmal gesendet.

    Achten Sie darauf, dass der Event-Handler idempotent ist und vermeiden Sie unerwartete Ergebnisse oder Nebeneffekte, wenn ein Ereignis mehrmals gesendet wird. Weitere Informationen finden Sie unter Idempotente Funktionen erstellen.

  • Ein Trigger ist einer einzelnen Datenbank zugeordnet. Sie können keinen Trigger erstellen, der mit mehreren Datenbanken übereinstimmt.

  • Durch das Löschen einer Datenbank werden die Trigger für diese Datenbank nicht automatisch gelöscht. Der Trigger sendet keine Ereignisse mehr, bleibt aber bestehen, bis Sie den Trigger löschen.

Standorte für Eventarc und Firestore im Datastore-Modus

Eventarc unterstützt keine regionsübergreifenden Trigger für Firestore-Ereignis-Trigger. Sie können aber trotzdem Trigger für Firestore-Datenbanken an multiregionalen Standorten erstellen. Eventarc ordnet multiregionale Firestore-Standorte den folgenden Eventarc-Regionen zu:

Firestore (multiregional) Eventarc-Region
nam5 us-central1
eur3 europe-west4

Interoperabilität von Ereignissen im Datastore-Modus und im nativen Modus

Eventarc unterstützt Ereignistrigger sowohl für den Datastore-Modus als auch den nativen Modus. Diese Ereignistrigger sind mit beiden Datenbanktypen interoperabel. Eine Firestore-Datenbank im nativen Modus kann Datastore-Ereignisse empfangen und eine Firestore-Datenbank im Datastore-Modus kann Ereignisse im nativen Modus empfangen.

Mit der Ereignisinteroperabilität können Sie Eventarc-Code für Firestore-Datenbanken verschiedener Typen freigeben.

Ereignis-Conversions

Wenn Sie einen Ereignistrigger im nativen Modus auf eine Datenbank im Datastore-Modus anwenden, führt Eventarc die folgenden Konvertierungen aus:

  • Der Namespace der Entität wird im PartitionId-Attribut des Ereignisses gespeichert.
  • Eingebettete Entitäten werden in den nativen Modus map konvertiert.

Nächste Schritte