Crea architetture basate su eventi con Eventarc

Puoi utilizzare Eventarc e Firestore per creare architetture basate su eventi. I trigger di Firestore per Eventarc generano eventi dalle modifiche a un particolare documento nel database. Il trigger può instradare gli eventi a una destinazione supportata:

Eventarc offre una soluzione standardizzata per gestire il flusso di modifiche dello stato, chiamate eventi, tra microservizi disaccoppiati. Quando viene attivato, Eventarc indirizza questi eventi a varie destinazioni e gestisce per te la distribuzione, la sicurezza, l'autorizzazione, l'osservabilità e la gestione degli errori.

Limitazioni

Tieni presente le seguenti limitazioni per i trigger di Firestore per Eventarc:

  • L'ordine non è garantito. Le modifiche rapide possono attivare gli eventi in un ordine imprevisto.
  • Gli eventi vengono pubblicati almeno una volta.

    Assicurati che il gestore di eventi sia idempotente ed evita di produrre risultati o effetti collaterali imprevisti quando un evento viene pubblicato più di una volta. Per scoprire di più, consulta Creazione di funzioni idempotenti.

  • Un trigger è associato a un singolo database. Non puoi creare un trigger corrispondente a più database.

  • L'eliminazione di un database non elimina automaticamente i trigger per quel database. L'attivatore smette di pubblicare eventi, ma continua a esistere finché non lo elimini.

Località Eventarc e Firestore

Eventarc non supporta più regioni per gli attivatori di eventi Firestore, ma puoi comunque creare trigger per i database Firestore in località multiregionali. Eventarc mappa le località multiregionali di Firestore alle seguenti regioni Eventarc:

Firestore (più aree geografiche) Regione Eventarc
nam5 us-central1
eur3 europe-west4

Differenze tra Cloud Functions (2ª generazione. e 1ª generazione)

Cloud Functions (2nd gen) utilizza gli eventi Eventarc per tutti i runtime. In precedenza, Cloud Functions (1ª generazione.) utilizzava gli eventi Eventarc solo per alcuni runtime. Gli eventi Eventarc introducono le seguenti differenze rispetto a Cloud Functions (1ª generazione).

  • I trigger Firestore per Eventarc supportano destinazioni aggiuntive oltre a Cloud Functions. Puoi instradare CloudEvents a una serie di destinazioni inclusi, a titolo esemplificativo, Cloud Run, GKE e Workflows.

  • I trigger di Firestore per Eventarc recuperano la definizione dell'attivatore all'inizio di un'operazione di scrittura del database e utilizzano questa definizione per decidere se Firestore deve emettere un evento. L'operazione di scrittura non prende in considerazione le eventuali modifiche alla definizione dell'attivatore che potrebbero verificarsi durante l'esecuzione.

    Cloud Functions (1ª generazione.) recupera la definizione del trigger durante la valutazione della scrittura del database e le modifiche al trigger durante la valutazione possono influire sull'emissione o meno di un evento da parte di Firestore.

Interoperabilità degli eventi in modalità Datastore e in modalità Native

Eventarc supporta i trigger di eventi sia per la modalità Datastore che per la modalità Native. Questi trigger di eventi sono interoperabili con entrambi i tipi di database. Un database Firestore in modalità Native può ricevere eventi Datastore, mentre un database Firestore in modalità Datastore può ricevere eventi in modalità Native.

L'interoperabilità degli eventi ti consente di condividere il codice Eventarc tra database Firestore di diversi tipi.

Conversioni evento

Se applichi un trigger di evento in modalità Native a un database in modalità Datastore, Eventarc effettua le seguenti conversioni:

  • Lo spazio dei nomi dell'entità è archiviato nell'attributo PartitionId dell'evento.
  • Le entità incorporate vengono convertite nei tipi di map in modalità nativa.

Passaggi successivi