Criar arquiteturas orientadas a eventos com o Eventarc

É possível usar o Eventarc e o Firestore para criar arquiteturas orientadas a eventos. Gatilhos do Firestore para O Eventarc gera eventos com base em mudanças a documentos específicos no banco de dados. O acionador pode rotear eventos para um destino aceito:

O Eventarc oferece uma solução padronizada para gerenciar o fluxo de mudanças de estado, chamadas de eventos, entre microsserviços separados. Quando acionado, o Eventarc encaminha esses eventos para vários destinos, gerenciando a entrega, a segurança, a autorização, a observabilidade e o tratamento de erros para você.

Limitações

Observe as seguintes limitações para os gatilhos do Firestore para o Eventarc:

  • Não garantimos acionamentos em ordem. Alterações rápidas podem acionar eventos em uma ordem inesperada.
  • Os eventos são entregues pelo menos uma vez.

    Confira se o gerenciador de eventos é idempotente e evite produzir resultados inesperados ou efeitos colaterais quando um evento é enviado mais de uma vez. Consulte Como criar funções idempotentes para saber mais.

  • Um gatilho está associado a um único banco de dados. Não é possível criar um gatilho que corresponda a vários bancos de dados.

  • A exclusão de um banco de dados não remove automaticamente nenhum gatilho dele. O gatilho deixa de entregar eventos, mas continua existindo até que você o exclua.

Locais do Eventarc e do Firestore

O Eventarc não oferece suporte a várias regiões para gatilhos de evento do Firestore, mas você ainda pode criar gatilhos para bancos de dados do Firestore em locais multirregionais. Mapas do Eventarc no Firestore locais multirregionais para as seguintes regiões do Eventarc:

Multirregião do Firestore Região do Eventarc
nam5 us-central1
eur3 europe-west4

Diferenças entre o Cloud Functions (2ª geração) e o Cloud Functions (1ª geração)

O Cloud Functions (2nd gen) usa eventos do Eventarc para todos os ambientes de execução. Anteriormente, as funções do Cloud Run (1ª geração) usavam eventos do Eventarc para apenas alguns ambientes de execução. Os eventos do Eventarc apresentam as seguintes diferenças em Funções do Cloud Run (1a geração).

  • Os gatilhos do Firestore para o Eventarc oferecem suporte a outros destinos além das funções do Cloud Run. É possível encaminhar CloudEvents para vários destinos, incluindo, mas não se limitando a Cloud Run, GKE e Workflows.

  • Os acionadores do Firestore para o Eventarc recuperam a definição do acionador no início de uma operação de gravação de banco de dados e usam essa definição para decidir se o Firestore precisa emitir um evento. A operação de gravação não considera as mudanças na definição do acionador que podem acontecer durante a execução.

    As funções do Cloud Run (1a geração) recuperam a definição do gatilho durante a da gravação no banco de dados e alterações no gatilho durante pode afetar a emissão de um evento pelo Firestore.

Interoperabilidade de eventos no modo Datastore e no modo nativo

O Eventarc oferece suporte a gatilhos de eventos para o modo Datastore e nativo modo Esses gatilhos de evento são interoperáveis com os dois tipos de banco de dados. Um banco de dados do Firestore no modo nativo pode receber eventos do Datastore, e um banco de dados do Firestore no modo Datastore pode receber eventos do modo nativo.

A interoperabilidade de eventos permite compartilhar o código do Eventarc Bancos de dados do Firestore de diferentes tipos.

Conversões de eventos

Se você aplicar um gatilho de evento do modo nativo a um Datastore no modo de banco de dados, o Eventarc faz as seguintes conversões:

  • O namespace da entidade é armazenado no atributo PartitionId do evento.
  • As entidades incorporadas são convertidas em tipos map do modo nativo.

A seguir