Visão geral das arquiteturas orientadas a eventos com o Eventarc

Use o Eventarc e o Firestore no modo Datastore para criar arquiteturas orientadas a eventos. O Firestore no modo Datastore oferece gatilhos para o Eventarc que geram eventos de mudanças em uma entidade específica no banco de dados. O acionador pode rotear eventos para um destino com suporte:

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ê.

Exemplos de casos de uso

Uma arquitetura orientada a eventos é um padrão de design de sistema em que os serviços reagem a mudanças no estado, conhecidas como eventos. Você pode usar esse padrão com a escalonabilidade do Firestore para adicionar mais recursos ao seu app. Por exemplo, você pode adicionar os seguintes recursos:

  • Interoperabilidade entre diferentes pilhas de tecnologia

    Replique e transforme seus dados antes de enviá-los para um sistema de análise.

  • Processamento paralelo

    Distribua as operações para processamento paralelo. Se você tiver vários sistemas que operam com base em mudanças de entidade, use os streams baseados em push em cada consumidor e roteie o evento para vários consumidores.

  • Fluxos de eventos baseados em push

    Crie designs de mensagens push. Os clientes podem receber notificações sem precisar consultar serviços remotos. Sem a latência de pesquisa, é possível realizar melhor o processamento de dados e a análise em tempo real.

  • Monitoramento e alertas de estado

    Use uma arquitetura orientada a eventos para adicionar métricas personalizadas às operações do banco de dados. Monitore e receba alertas sobre mudanças e atualizações. Detecte anomalias.

Limitações

Observe as seguintes limitações para gatilhos do modo Datastore para o Eventarc:

  • Não garantimos acionamentos em ordem. Mudanças 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.

Eventarc e Firestore nos locais do modo Datastore

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. O Eventarc mapeia os locais de várias regiões do Firestore para as seguintes regiões do Eventarc:

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

Interoperabilidade de eventos do modo Datastore e do modo nativo

O Eventarc é compatível com gatilhos de evento para o modo Datastore e o modo nativo. Esses acionadores de eventos 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 em bancos de dados do Firestore de tipos diferentes.

Conversões de eventos

Se você aplicar um gatilho de evento do modo nativo a um banco de dados do modo do Datastore, o Eventarc fará 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