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
- Saiba mais sobre arquiteturas orientadas a eventos.