Créer des architectures basées sur des événements avec Eventarc

Vous pouvez utiliser Eventarc et Firestore pour créer des architectures basées sur des événements. Les déclencheurs Firestore pour Eventarc génèrent des événements à partir des modifications apportées à un document spécifique de votre base de données. Le déclencheur peut acheminer les événements vers une destination compatible :

Eventarc offre une solution standardisée pour gérer le flux des changements d'état, appelés événements, entre les microservices découplés. Lorsqu'il est déclenché, Eventarc achemine ces événements vers différentes destinations tout en gérant la diffusion, la sécurité, les autorisations, l'observabilité et la gestion des erreurs à votre place.

Limites

Notez les limitations suivantes concernant les déclencheurs Firestore pour Eventarc :

  • L'ordre n'est pas garanti. Les modifications rapides peuvent déclencher des événements dans un ordre inattendu.
  • Les événements sont distribués au moins une fois.

    Assurez-vous que votre gestionnaire d'événements est idempotent et évitez de produire des résultats ou des effets secondaires inattendus lorsqu'un événement est transmis plusieurs fois. Pour en savoir plus, consultez Créer des fonctions idempotentes.

  • Un déclencheur est associé à une seule base de données. Vous ne pouvez pas créer un déclencheur qui correspond à plusieurs bases de données.

  • La suppression d'une base de données ne supprime pas automatiquement les déclencheurs de cette base de données. Le déclencheur cesse de diffuser des événements, mais continue d'exister jusqu'à ce que vous le supprimiez. Si la base de données est recréée, tous les déclencheurs associés devront également être supprimés et recréés pour restaurer la diffusion des événements.

Emplacements Eventarc et Firestore

Eventarc n'est pas compatible avec les régions multiples pour les déclencheurs d'événements Firestore en mode natif, mais vous pouvez toujours créer des déclencheurs pour les bases de données Firestore dans des emplacements multirégionaux. Eventarc mappe les emplacements multirégionaux Firestore aux régions Eventarc suivantes :

Firestore – Plusieurs régions Région Eventarc
nam5 us-central1
eur3 europe-west4

Différences entre Cloud Run Functions (2nd gen) et (1st gen)

Les fonctions Cloud Run (2e génération) utilisent des événements Eventarc pour tous les environnements d'exécution. Auparavant, Cloud Run Functions (1re génération) utilisait les événements Eventarc pour certains environnements d'exécution uniquement. Les événements Eventarc présentent les différences suivantes par rapport à Cloud Run Functions (1re génération).

  • Les déclencheurs Firestore pour Eventarc sont compatibles avec d'autres destinations que les fonctions Cloud Run. Vous pouvez acheminer CloudEvents vers plusieurs destinations, y compris, mais sans s'y limiter, Cloud Run, GKE et Workflows.

  • Les déclencheurs Firestore pour Eventarc récupèrent la définition du déclencheur au début d'une opération d'écriture dans la base de données et l'utilisent pour déterminer si Firestore doit émettre un événement. L'opération d'écriture ne tient pas compte des modifications apportées à la définition du déclencheur qui pourraient se produire lors de son exécution.

    Cloud Run Functions (1re génération) récupère la définition du déclencheur lors de l'évaluation de l'écriture dans la base de données. Les modifications apportées au déclencheur lors de l'évaluation peuvent avoir une incidence sur l'émission ou non d'un événement par Firestore.

Interopérabilité des événements en mode Datastore et en mode natif

Eventarc est compatible avec les déclencheurs d'événements pour le mode Datastore et le mode natif. Ces déclencheurs d'événements sont interopérables avec les deux types de bases de données. Une base de données Firestore en mode natif peut recevoir des événements Datastore, et une base de données Firestore en mode Datastore peut recevoir des événements en mode natif.

L'interopérabilité des événements vous permet de partager du code Eventarc entre des bases de données Firestore de différents types.

Conversions d'événements

Si vous appliquez un déclencheur d'événement en mode natif à une base de données en mode Datastore, Eventarc effectue les conversions suivantes :

  • L'espace de noms de l'entité est stocké dans l'attribut PartitionId de l'événement.
  • Les entités intégrées sont converties en types map en mode natif.

Étapes suivantes