Skip to main content

Usar la API de Pub/Sub

Objetivos de aprendizaje

Después de completar esta unidad, podrá:

  • Describir las características de la API de Pub/Sub.
  • Describir los diversos productos de eventos que admite la API de Pub/Sub.
  • Explicar el uso del bus de eventos y la forma de especificar opciones de reproducción.

Eventos de transmisión

Para concluir nuestro análisis de las API de datos de Salesforce, vamos a examinar una API que es de utilidad para un caso de uso totalmente distinto. La API de Pub/Sub le permite suscribirse a transmisiones de eventos en tiempo real e integrar sistemas externos con eventos en tiempo real. Las transmisiones de eventos se basan en las cargas útiles personalizadas mediante los eventos de plataforma o en los cambios en los registros de Salesforce mediante Captura de datos de cambio. En Salesforce, puede publicar eventos y suscribirse a ellos con desencadenadores de Apex, Process Builder y Flow Builder. 

Como mencionamos en la unidad 1, la API de Pub/Sub está desarrollada para una integración de eventos bidireccional y a alta escala con Salesforce. Utilice la API de Pub/Sub para publicar mensajes de eventos binarios en formato Apache Avro y suscribirse a ellos de forma eficiente. La API de Pub/Sub se basa en gRPC y HTTP/2, y utiliza un modelo basado en extracciones que le permite controlar el flujo de suscripciones. El servicio de la API de Pub/Sub se define en un archivo .proto. Con la API de Pub/Sub, puede utilizar uno de los 11 lenguajes de programación compatibles con gRPC. 

La API de transmisión se puede usar como un radar para detectar cambios en los datos y enviar y recibir notificaciones.

El seguimiento de los cambios en los datos en Salesforce es especialmente útil si tiene datos de negocio almacenados en un sistema externo distinto de Salesforce. Puede utilizar la API de Pub/Sub para sincronizar su origen externo con sus datos de Salesforce y con los eventos de captura de datos de cambio. Además, la API le permite procesar la lógica de negocio de un sistema externo en respuesta a cambios en los datos en Salesforce. Por ejemplo, puede usar la API de Pub/Sub para enviar una notificación a un centro de cumplimiento siempre que se actualice una oportunidad.

La API de Pub/Sub puede usarse no solo para los cambios de datos, sino también para el envío de notificaciones personalizadas con eventos de plataforma. Por ejemplo, una aplicación puede generar notificaciones de eventos de plataforma para pedidos que procesa un servicio de realización de pedidos. O bien, una aplicación puede escuchar los eventos de plataforma que publica Salesforce para supervisar la actividad de los usuarios en Salesforce. 

API de Pub/Sub y productos de eventos

Estos son los eventos que puede publicar y a los que puede suscribirse.

  • Captura de cambio de datos: con la captura de datos de cambio, es posible obtener los cambios en los registros de todos los campos modificados admitidos. Las operaciones de registro sobre las que se realiza un seguimiento incluyen la creación, la actualización, la eliminación y la recuperación de registros. Cada mensaje de evento contiene campos de encabezado con información sobre el cambio.
  • Eventos de plataforma: con los eventos de plataforma personalizados, puede publicar notificaciones personalizadas y suscribirse a estas. Puede crear campos y objetos de eventos de plataforma para definir el esquema de los datos de eventos. Además, puede suscribirse a eventos de plataforma estándar que Salesforce define y publica, como los de Monitoreo de eventos en tiempo real, para supervisar las actividades relacionadas con la seguridad y los usuarios en Salesforce y otros aspectos.

Todos los productos de eventos utilizan el bus de eventos, un servicio que permite almacenar y recuperar mensajes de eventos. 

Los eventos de plataforma y la captura de datos de cambio ofrecen flexibilidad, capacidad de ampliación y seguridad mejorada. 

  • Puede suscribirse a eventos de plataforma y eventos de captura de datos de cambio con los desencadenadores de Apex. Asimismo, los eventos de plataforma admiten la suscripción con flujos y procesos.
  • Admiten el cifrado en reposo de datos de eventos.
  • El esquema con versión de un evento de plataforma o un evento de captura de datos de cambio permite a los suscriptores analizar eventos de manera determinista. Cada versión de esquema se corresponde con un Id. de esquema exclusivo, que se incluye en el mensaje de notificación del evento.
  • La captura de cambio de datos incluye campos de encabezado que contienen información sobre el cambio.

Recuperar notificaciones antiguas mediante el bus de eventos

A partir de la versión 37.0 de la API, los eventos se publican en el bus de eventos. Los suscriptores deben recuperar los eventos de un canal en el bus de eventos, incluidos los eventos pasados que se almacenan temporalmente. El bus de eventos desvincula los publicadores de eventos de los suscriptores de eventos. 

Salesforce almacena eventos de captura de cambio de datos y eventos de plataforma de alto volumen durante 72 horas. Al recuperar los mensajes de eventos almacenados del bus de eventos, puede ponerse al día con los eventos que perdió cuando se desconectó el cliente.

El diagrama del bus de eventos muestra cómo los eventos se publican en el bus correspondiente y cómo los suscriptores recuperan eventos.

A cada mensaje de evento se le asigna un Id. opaco en el campo ReplayId. El valor de campo ReplayId, que se completa por el sistema cuando se entrega el evento a suscriptores, hace referencia a la posición del evento en la transmisión de eventos. No se garantiza que los valores de Id. de reproducción sean contiguos para los eventos consecutivos.

Un suscriptor puede almacenar un valor de Id. de reproducción y usarlo en la renovación de la suscripción para recuperar eventos incluidos en el periodo de retención. Por ejemplo, un suscriptor puede recuperar eventos perdidos después de un error de conexión. Los suscriptores no deben computar los Id. de reproducción nuevos a partir de un Id. de reproducción almacenado para hacer referencia a otros eventos de la transmisión.

Además, existen otras opciones de reproducción, que se detallan en la siguiente tabla. Las opciones de reproducción se especifican en la enumeración ReplayPreset

Opción de ReplayPreset Descripción Uso

CUSTOM with Replay ID (PERSONALIZADOS con Id. de reproducción)

El suscriptor recibe todos los eventos después del evento especificado por su valor replayId y nuevos eventos.

Póngase al día de eventos que se perdió después de un mensaje de evento específico, como por ejemplo, después de un fallo de conexión. Para suscribirse con un Id. de repetición específico, guarde el Id. de la repetición del mensaje del evento después del cual desea recuperar eventos almacenados. A continuación, utilice este Id. de repetición cuando vuelva a suscribirse.

Almacene los valores de Id. de reproducción como bytes, ya que los Id. de reproducción son opacos.

LATEST (MÁS RECIENTES)

El suscriptor recibe los nuevos eventos que se difunden después de que el cliente se suscriba.

Recomendamos que los clientes se suscriban con la opción LATEST para recibir mensajes de eventos nuevos. Si los clientes necesitan obtener mensajes de eventos anteriores, pueden utilizar cualquier otra opción de repetición.

EARLIEST (MÁS ANTIGUOS)

El suscriptor recibe todos los eventos, incluyendo los eventos pasados que se encuentren dentro del periodo de retención y los eventos nuevos.

Póngase al día de eventos que se perdió y recupere todos los eventos almacenados, como por ejemplo, después de un fallo de conexión. Utilice esta opción con prudencia. La suscripción con la opción EARLIEST puede mermar el desempeño cuando hay un gran número de mensajes de eventos almacenados.

En este diagrama se muestra cómo los consumidores de eventos pueden leer una transmisión de eventos mediante varias opciones de reproducción. 

Recursos

Documentación de la API de Pub/Sub

Trailhead

Guía del desarrollador de eventos de plataforma

Guía del desarrollador de Captura de datos de cambio

Referencia de componentes Lightning

Comparta sus comentarios de Trailhead en la Ayuda de Salesforce.

Nos encantaría saber más sobre su experiencia con Trailhead. Ahora puede acceder al nuevo formulario de comentarios en cualquier momento en el sitio de Ayuda de Salesforce.

Más información Continuar a Compartir comentarios