Crear arquitecturas basadas en eventos con Eventarc

Puede usar Eventarc y Firestore para crear arquitecturas basadas en eventos. Los activadores de Firestore para Eventarc generan eventos a partir de los cambios en documentos concretos de tu base de datos. El activador puede enrutar eventos a un destino admitido:

Eventarc ofrece una solución estandarizada para gestionar el flujo de cambios de estado, llamados eventos, entre microservicios desacoplados. Cuando se activan, Eventarc enruta estos eventos a varios destinos y gestiona la entrega, la seguridad, la autorización, la observabilidad y la gestión de errores.

Limitaciones

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

  • No se garantiza la realización del pedido. Los cambios rápidos pueden activar eventos en un orden inesperado.
  • Los eventos se entregan al menos una vez.

    Asegúrate de que tu controlador de eventos sea idempotente y evita que se produzcan resultados inesperados o efectos secundarios cuando se envíe un evento más de una vez. Consulta más información sobre cómo crear funciones idempotentes.

  • Un activador está asociado a una sola base de datos. No puedes crear un activador que coincida con varias bases de datos.

  • Si eliminas una base de datos, no se eliminarán automáticamente los activadores de esa base de datos. El activador deja de enviar eventos, pero sigue existiendo hasta que lo eliminas. Si se vuelve a crear la base de datos, también habrá que eliminar y volver a crear los activadores asociados para restaurar el envío de eventos.

Ubicaciones de Eventarc y Firestore

Eventarc no admite varias regiones para los activadores de eventos de Firestore en modo nativo, pero puedes crear activadores para bases de datos de Firestore en ubicaciones multirregionales. Eventarc asigna las ubicaciones multirregión de Firestore a las siguientes regiones de Eventarc:

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

Diferencias entre la segunda y la primera generación de Cloud Run Functions

Las funciones de Cloud Run (2.ª gen.) usan eventos de Eventarc para todos los tiempos de ejecución. Antes, las funciones de Cloud Run (1.ª gen.) usaban eventos de Eventarc solo en algunos tiempos de ejecución. Los eventos de Eventarc introducen las siguientes diferencias con respecto a Cloud Run Functions (1.ª gen.).

  • Los activadores de Firestore para Eventarc admiten destinos adicionales además de las funciones de Cloud Run. Puedes enrutar CloudEvents a varios destinos, como Cloud Run, GKE y Workflows.

  • Los activadores de Firestore para Eventarc recuperan la definición del activador al inicio de una operación de escritura en la base de datos y usan esa definición para decidir si Firestore debe emitir un evento. La operación de escritura no tiene en cuenta los cambios en la definición del activador que puedan producirse durante su ejecución.

    Las funciones de Cloud Run (1.ª gen.) recuperan la definición del activador durante la evaluación de la escritura en la base de datos, y los cambios en el activador durante la evaluación pueden afectar a si Firestore emite un evento o no.

Interoperabilidad de eventos en el modo Datastore y el modo nativo

Eventarc admite activadores de eventos tanto en el modo Datastore como en el modo nativo. 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, y una base de datos de Firestore en modo Datastore puede recibir eventos en modo nativo.

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

Conversiones de eventos

Si aplica un activador de eventos en modo nativo a una base de datos en modo Datastore, Eventarc hará las siguientes conversiones:

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

Siguientes pasos