Übersicht über ereignisgesteuerte Architekturen mit Eventarc

Mit Eventarc und Firestore im Datastore-Modus zum Erstellen ereignisgesteuerten Architekturen. Firestore im Datastore-Modus bietet Trigger für Eventarc, die Ereignisse aus Änderungen generiert auf eine bestimmte Entität in Ihrer Datenbank übertragen. Der Trigger kann Ereignisse an eine unterstütztes Ziel haben:

Eventarc bietet eine standardisierte Lösung zur Verwaltung des Datenflusses Zustandsänderungen, sogenannte Ereignisse, zwischen entkoppelten Mikrodiensten. Wenn sie ausgelöst wird, Eventarc leitet diese Ereignisse an verschiedene Ziele und die Verwaltung von Zustellung, Sicherheit, Autorisierung, Beobachtbarkeit und Fehlerbehandlung.

Beispielanwendungsfälle

Eine ereignisgesteuerte Architektur ist ein Systemdesignmuster, in dem Dienste Statusänderungen, sogenannten Ereignissen, angepasst werden. Sie können dieses Muster zusammen mit dem Skalierbarkeit von Firestore, um Ihrer Anwendung weitere Features hinzuzufügen. Sie können beispielsweise die folgenden Funktionen hinzufügen:

  • Interoperabilität zwischen verschiedenen Technologie-Stacks

    Replizieren Sie Ihre Daten und transformieren Sie sie, bevor Sie sie an einen analysieren.

  • Parallelverarbeitung

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

  • Push-basierte Ereignisstreams

    Push-basierte Nachrichtendesigns erstellen Clients können Benachrichtigungen erhalten, ohne Remotedienste abfragen zu müssen. Ohne die Abfragelatenz Datenverarbeitung und Analysen in Echtzeit besser durchführen können.

  • Statusüberwachung und Benachrichtigung

    Ereignisgesteuerte Architektur verwenden, um benutzerdefinierte Ihren Datenbankvorgängen Messwerte hinzufügen. Behalten Sie Änderungen und Updates im Blick und erhalten Sie Benachrichtigungen dazu. 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 bereitgestellt.

    Sicherstellen, dass der Event-Handler idempotent ist und keine unerwarteten Ergebnisse liefert oder Nebenwirkungen haben, wenn ein Ereignis mehr als einmal geliefert wird. Weitere Informationen finden Sie unter 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 nicht automatisch die Trigger für diese Datenbank gelöscht. Die Der Trigger liefert keine Ereignisse mehr. Er bleibt jedoch bestehen, bis Sie den Trigger löschen.

Standorte für Eventarc und Firestore im Datastore-Modus

Eventarc unterstützt keine Mehrfachregionen für Firestore-Ereignisse Trigger, aber Sie können trotzdem Trigger für Firestore-Datenbanken erstellen an multiregionalen Standorten. Eventarc-Zuordnung in Firestore Multiregionale Standorte in die folgenden Eventarc-Regionen:

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

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

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

Dank der Interoperabilität von Ereignissen können Sie Eventarc-Code für andere Firestore-Datenbanken verschiedener Typen.

Ereignis-Conversions

Wenn Sie einen Ereignistrigger im nativen Modus auf einen Datastore anwenden verwendet Eventarc folgende Conversions:

  • Der Namespace der Entität wird im Attribut PartitionId des Ereignisses gespeichert.
  • Eingebettete Entitäten werden in den Typ „map“ im nativen Modus umgewandelt.

Nächste Schritte