Puoi utilizzare Eventarc e Firestore in modalità Datastore per creare architetture basate su eventi. Firestore in modalità Datastore fornisce attivatori per Eventarc che generano eventi dalle modifiche apportate a una determinata entità nel database. L'attivatore può indirizzare gli eventi a un destinazione supportata:
Eventarc offre una soluzione standardizzata per gestire il flusso delle 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.
Esempi di casi d'uso
Un'architettura basata su eventi è un modello di progettazione di sistema in cui i servizi reagiscono a cambiamenti di stato, noti come eventi. Puoi utilizzare questo pattern insieme alla scalabilità di Firestore per aggiungere altre funzionalità alla tua app. Ad esempio, puoi aggiungere le seguenti funzionalità:
Interoperabilità tra diversi stack tecnologici
Replica i dati e trasformali prima di inviarli a un di analisi dei dati.
Elaborazione parallela
Operazioni di fan-out per l'elaborazione parallela. Se hai più sistemi che operano in base alle modifiche delle entità, puoi utilizzare gli stream basati su push in ogni consumer e inoltrare l'evento a più consumer.
Flussi di eventi basati su push
Crea progetti di messaggistica basati sul push. I client possono ricevere notifiche senza dover eseguire il polling dei servizi remoti. Senza la latenza del polling, puoi eseguire meglio l'elaborazione dei dati e l'analisi in tempo reale.
Monitoraggio e avvisi sullo stato
Utilizza un'architettura basata su eventi per aggiungere metriche personalizzate alle operazioni del database. Monitora e ricevi avvisi su modifiche e aggiornamenti. Rileva le anomalie.
Limitazioni
Nota le seguenti limitazioni per i trigger in modalità Datastore Eventarc:
- L'ordine non è garantito. Le variazioni rapide possono attivare gli eventi in un ordine imprevisto.
Gli eventi vengono pubblicati almeno una volta.
Assicurati che il tuo gestore di eventi sia idempotente ed evita di produrre risultati imprevisti o effetti collaterali quando un evento viene pubblicato più di una volta. Consulta Creazione di funzioni idempotenti per saperne di più.
Un trigger è associato a un singolo database. Non puoi creare un trigger che corrisponde a più database.
L'eliminazione di un database non elimina automaticamente alcun trigger per quel database. L'attivatore interrompe l'invio di eventi, ma continua a esistere finché non lo elimini.
Eventarc e Firestore in località in modalità Datastore
Eventarc non supporta più regioni per l'evento Firestore ma puoi comunque creare trigger per i database Firestore in località multiregionali. Eventarc mappa le località Firestore in più regioni alle seguenti regioni Eventarc:
Firestore (più regioni) | Regione Eventarc |
---|---|
nam5 |
us-central1 |
eur3 |
europe-west4 |
Interoperabilità degli eventi in modalità Datastore e modalità Native
Eventarc supporta gli attivatori di eventi sia per la modalità Datastore sia per la modalità Native. Questi attivatori di eventi sono interoperabili con entrambi i tipi di database. Un database Firestore in modalità Native può ricevere Datastore e un database Firestore in modalità Datastore può ricevere Eventi in modalità Native.
L'interoperabilità degli eventi ti consente di condividere il codice Eventarc di diversi tipi in database Firestore.
Conversioni evento
Se applichi un attivatore di eventi in modalità Native a un database in modalità Datastore, Eventarc esegue le seguenti conversioni:
- Lo spazio dei nomi dell'entità è archiviato nell'attributo
PartitionId
dell'evento. - Le entità incorporate vengono convertite nei tipi
map
della modalità nativa.
Passaggi successivi
- Scopri di più sulle architetture basate su eventi.