Crie arquiteturas orientadas por eventos com o Eventarc
Pode usar o Eventarc e o Firestore para criar arquiteturas orientadas por eventos. Os acionadores do Firestore para o Eventarc geram eventos a partir de alterações a documentos específicos na sua base de dados. O acionador pode encaminhar eventos para um destino suportado:
- Funções do Cloud Run (2.ª geração) que suportam as bibliotecas cliente da Google Cloud e o SDK do Firebase
- Cloud Run
- Google Kubernetes Engine
- Fluxos de trabalho
O Eventarc oferece uma solução padronizada para gerir o fluxo de alterações de estado, denominadas eventos, entre microsserviços separados. Quando acionado, o Eventarc encaminha estes eventos para vários destinos enquanto gere a entrega, a segurança, a autorização, a observabilidade e o processamento de erros por si.
Limitações
Tenha em atenção as seguintes limitações para acionadores do Firestore para o Eventarc:
- A ordenação não é garantida. As alterações rápidas podem acionar eventos numa ordem inesperada.
Os eventos são entregues pelo menos uma vez.
Certifique-se de que o controlador de eventos é idempotente e evite produzir resultados inesperados ou efeitos secundários quando um evento é enviado mais do que uma vez. Consulte o artigo Criar funções idempotentes para saber mais.
Um acionador está associado a uma única base de dados. Não pode criar um acionador que corresponda a várias bases de dados.
A eliminação de uma base de dados não elimina automaticamente os acionadores dessa base de dados. O acionador deixa de enviar eventos, mas continua a existir até eliminar o acionador. Se a base de dados for recriada, todos os acionadores associados também têm de ser eliminados e recriados para restaurar a entrega de eventos.
Localizações do Eventarc e do Firestore
O Eventarc não suporta várias regiões para acionadores de eventos do Firestore no modo nativo, mas ainda pode criar acionadores para bases de dados do Firestore em localizações de várias regiões. O Eventarc mapeia as localizações multirregionais do Firestore para as seguintes regiões do Eventarc:
Multirregião do Firestore | Região do Eventarc |
---|---|
nam5 |
us-central1 |
eur3 |
europe-west4 |
Diferenças entre as funções do Cloud Run de 2.ª geração e de 1.ª geração
As funções do Cloud Run (2.ª geração) usam eventos do Eventarc para todos os tempos de execução. Anteriormente, as funções do Cloud Run (1.ª geração) usavam eventos do Eventarc apenas para alguns tempos de execução. Os eventos do Eventarc introduzem as seguintes diferenças em relação às funções do Cloud Run (1.ª geração).
Os acionadores do Firestore para o Eventarc suportam destinos adicionais além das funções do Cloud Run. Pode encaminhar
CloudEvents
para vários destinos, incluindo, entre outros, o Cloud Run, o GKE e os Workflows.Os acionadores do Firestore para o Eventarc obtêm a definição do acionador no início de uma operação de escrita na base de dados e usam essa definição para decidir se o Firestore deve emitir um evento. A operação de escrita não tem em conta as alterações à definição do acionador que possam ocorrer durante a sua execução.
As funções do Cloud Run (1.ª geração) obtêm a definição do acionador durante a avaliação da gravação na base de dados, e as alterações ao acionador durante a avaliação podem afetar a emissão ou não de um evento pelo Firestore.
Interoperabilidade de eventos do modo Datastore e do modo nativo
O Eventarc suporta acionadores de eventos para o modo Datastore e o modo nativo. Estes acionadores de eventos são interoperáveis com ambos os tipos de bases de dados. Uma base de dados do Firestore no modo nativo pode receber eventos do Datastore e uma base de dados do Firestore no modo Datastore pode receber eventos do modo nativo.
A interoperabilidade de eventos permite-lhe partilhar código do Eventarc em bases de dados do Firestore de diferentes tipos.
Conversões de eventos
Se aplicar um acionador de eventos do modo nativo a uma base de dados do modo Datastore, o Eventarc faz as seguintes conversões:
- O espaço de nomes da entidade é armazenado no atributo
PartitionId
do evento. - As entidades incorporadas são convertidas em tipos de modo nativo
map
.
O que se segue?
- Saiba mais sobre as arquiteturas orientadas por eventos.