Crea arquitecturas controladas por eventos con Eventarc

Puedes usar Eventarc y Firestore para compilar arquitecturas controladas por eventos. Los activadores de Firestore para Eventarc generan eventos a partir de cambios en un documento específico de tu base de datos. El activador puede enrutar los eventos a un destino compatible:

Eventarc ofrece una solución estandarizada para administrar el flujo de cambios de estado, llamada eventos, entre microservicios separados. Cuando se activa, Eventarc enruta estos eventos a varios destinos, a la vez que administra la entrega, la seguridad, la autorización, la observabilidad y el manejo de errores por ti.

Limitaciones

Ten en cuenta las siguientes limitaciones de los activadores de Firestore para Eventarc:

  • No se garantiza el ordenamiento. Los cambios rápidos pueden activar eventos en un orden inesperado.
  • Los eventos se entregan al menos una vez.

    Asegúrate de que el controlador de eventos sea idempotente y evita producir resultados inesperados o efectos secundarios cuando se entregue un evento más de una vez. Consulta Cómo compilar funciones idempotentes para obtener más información.

  • Un activador se asocia con una sola base de datos. No puedes crear un activador que coincida con varias bases de datos.

  • Cuando se borra una base de datos, no se borra automáticamente ningún activador de la base de datos. El activador deja de entregar eventos, pero sigue existiendo hasta que lo borras.

Ubicaciones de Eventarc y Firestore

Eventarc no admite multirregiones para activadores de eventos de Firestore, pero aún puedes crear activadores para las bases de datos de Firestore en ubicaciones multirregionales. Eventarc asigna ubicaciones multirregionales de Firestore a las siguientes regiones de Eventarc:

Firestore multirregional Región de Eventarc
nam5 us-central1
eur3 europe-west4

Diferencias entre Cloud Functions (2ª gen.) y 1st gen

Cloud Functions (2nd gen) usa eventos de Eventarc para todos los entornos de ejecución. Anteriormente, Cloud Functions (1a gen.) usaba eventos de Eventarc para solo algunos entornos de ejecución. Los eventos de Eventarc introducen las siguientes diferencias con respecto a Cloud Functions (1a gen.).

  • Los activadores de Firestore para Eventarc admiten destinos adicionales, además de Cloud Functions. Puedes enrutar CloudEvents a varios destinos, incluidos, entre otros, Cloud Run, GKE y Workflows.

  • Los activadores de Firestore para Eventarc recuperan la definición del activador al comienzo de una operación de escritura de la base de datos y la usan para decidir si Firestore debe emitir un evento. La operación de escritura no tiene en cuenta ningún cambio en la definición del activador que pueda ocurrir mientras se ejecuta.

    Cloud Functions (1st gen) recupera la definición del activador durante la evaluación de la escritura de la base de datos, y los cambios en el activador durante la evaluación pueden afectar si Firestore emite un evento o no.

Interoperabilidad de eventos en modo Datastore y en modo nativo

Eventarc admite activadores de eventos para los modos Datastore y Native. Estos activadores de eventos son interoperables con ambos tipos de bases de datos. Una base de datos de Firestore en modo nativo puede recibir eventos de Datastore, mientras que una base de datos de Firestore en modo Datastore puede recibir eventos de modo nativo.

La interoperabilidad de eventos te permite compartir código de Eventarc en bases de datos de Firestore de diferentes tipos.

Conversiones de eventos

Si aplicas un activador de eventos de modo nativo a una base de datos en modo Datastore, Eventarc realiza las siguientes conversiones:

  • El espacio de nombres de la entidad se almacena en el atributo PartitionId del evento.
  • Las entidades incorporadas se convierten a tipos map de modo nativo.

¿Qué sigue?