Esta es una traducción que desde EGA Futura ofrecemos como cortesía a toda la Ohana y comunidad de programadores , consultores , administradores y arquitectos de Salesforce para toda Iberoamérica .

El enlace a la publicación original, lo encontrarás al final de este artículo.

Se acerca una nueva forma de publicar y suscribirse a eventos: la prueba piloto de la API de Pub / Sub se lanzará en agosto de 2021. Estos eventos podrían ser eventos de plataforma, eventos de captura de datos modificados o eventos de monitoreo de eventos en tiempo real. La API de Pub / Sub llega de la mano con el nuevo Event Bus Runtime, una pieza moderna de infraestructura detrás de escena que permitirá a todos los clientes de Salesforce escalar a mayores alturas que nunca. Lea más sobre el nuevo tiempo de ejecución en esta publicación de blog de Salesforce Architects.

¿Qué novedades tiene la API de Pub / Sub?

Para realizar integraciones impulsadas por eventos en la actualidad, los clientes tienen algunas opciones diferentes de publicación: pueden usar la API Bulk, la API SOAP o la API REST. Estas API permiten a los desarrolladores publicar cualquier evento de plataforma estándar que admita la create() (por ejemplo, CommerceDiagnosticEvent ) y / o cualquier evento de plataforma personalizado. Para suscribirse a eventos, los clientes pueden usar la API de transmisión, que les permite suscribirse a cualquier evento de captura de datos de cambio, evento de plataforma o evento de monitoreo de eventos en tiempo real.

Con la nueva API de Pub / Sub, toda esa funcionalidad se consolida en una API completa. La API de Pub / Sub permite a los usuarios publicar eventos, suscribirse a eventos, solicitar esquemas y solicitar información sobre temas, todo dentro de una API. Erradica la necesidad de crear un cliente de API Streaming de CometD personalizado, algo que no siempre es fácil para los desarrolladores sin experiencia o conocimientos previos de CometD. Sin la necesidad de un cliente CometD personalizado, más usuarios que nunca pueden comenzar a implementar marcos basados en eventos en su arquitectura. La API de Pub / Sub también ha mejorado la lógica incorporada para el control de flujo y la publicación de reconocimientos, lo que permite a los desarrolladores crear aplicaciones más sólidas de lo que podrían con la API de transmisión.

La API de Pub / Sub puede ayudarlo a optimizar su arquitectura de integración y abordar proyectos como:

  • Suscribirse a eventos de monitoreo de eventos y publicar un evento de plataforma nuevamente en Salesforce para restringir el perfil de un usuario cuando inician sesión en Salesforce después del horario laboral
  • Suscripción a eventos de captura de datos modificados y replicación de datos de pedidos en un sistema de inventario externo
  • Suscribirse a un evento de plataforma estándar como AppointmentSchedulingEvent e integrarse con Google Calendar para actualizar los calendarios de los usuarios

¿Qué es gRPC?

Muchos de los beneficios adicionales de la API de Pub / Sub provienen del hecho de que es una API basada en gRPC, la primera de este tipo que ofrece Salesforce. gRPC es un nuevo protocolo de API empresarial líder en la industria que cuenta con una serie de mejoras sobre REST y SOAP:

  • Mejor rendimiento: gRPC es entre siete y diez veces más rápido que REST debido al hecho de que su formato de carga útil es búfer de bytes livianos comprimidos en lugar de JSON.
  • Transmisión bidireccional: a diferencia del paradigma de solicitud-respuesta unario empleado por REST y SOAP, gRPC permite que los clientes y servidores configuren y mantengan canales de comunicación bidireccionales abiertos entre ellos. Esto permite que tanto un cliente como un servidor funcionen de forma independiente, lo que significa que un cliente puede consumir y publicar eventos en el orden que desee. Además, gRPC conserva el orden de los mensajes dentro de la transmisión.
  • Basado en HTTP 2: este nuevo estándar garantiza un mejor rendimiento, mayor seguridad y menos gastos generales en comparación con las API creadas en HTTP 1.

gRPC cuenta con soporte oficial en 11 idiomas y tiene soporte comunitario no oficial en más, lo que permite a los desarrolladores con cualquier experiencia en programación convencional hacer un uso completo de las capacidades de la API de Pub / Sub. También cuenta con una activa comunidad de desarrolladores en línea, lo que hará que desarrollar con gRPC sea mucho más sencillo que construir un cliente CometD.

Cómo usar un archivo proto

Parte de la diferencia conceptual de gRPC con REST y SOAP es que expone llamadas a procedimientos remotos (RPC) en lugar de puntos finales. Estos RPC son métodos que se pueden llamar de forma remota con parámetros y tipos de retorno especificados. El servidor API implementa esta interfaz y ejecuta un servidor gRPC para manejar las llamadas de los clientes. El cliente tiene un código auxiliar que refleja los métodos disponibles en el servidor. Todos estos métodos, o RPC, se definen en un "archivo proto", que contiene todos los parámetros del método RPC y los tipos de retorno especificados como mensajes de búfer de protocolo. El archivo proto de la API de Pub / Sub se puede encontrar en el repositorio de la API de Pub / Sub de Salesforce en Github. El siguiente es un fragmento del archivo proto:

El pseudocódigo para invocar la RPC de publicación podría verse así:

publishresponse = stub.Publish(stub.PublishRequest(topic_name = '/event/CustomOrder__e', events = makeProducerEvents())

Ejemplo: cómo suscribirse a eventos de captura de datos modificados en Python

El siguiente tutorial describe los pasos generales para suscribirse a eventos de captura de datos modificados con una implementación de Python de la API de Pub / Sub. Debido a que la API es un programa piloto cerrado, esto no pretende ser un tutorial; los clientes piloto obtendrán una guía piloto oficial con ejemplos de código después del lanzamiento del piloto. Este ejemplo es simplemente para mostrar lo simple que puede ser el proceso de suscripción con la API de Pub / Sub.

  1. Asegúrese de que el objeto que desea rastrear esté habilitado para eventos de Captura de datos modificados en Configuración.
  2. Obtenga el nombre del tema al que desea suscribirse. Para los eventos de captura de datos modificados, el nombre del tema es /data/ChangeEvents para todos los eventos de CDC y /data/<Object>ChangeEvent para objetos específicos (por ejemplo, /data/OpportunityChangeEvent para el objeto de oportunidad).
  3. Cree una función generadora para hacer un flujo FetchRequest.
    def fetchReqStream(topic):
    while True:
    semaphore.acquire()
    yield pb2.FetchRequest(
    topic_name = topic,
    replay_preset = pb2.ReplayPreset.LATEST,
    num_requested = 1,
    linger_ms = 0)
  4. Cree una función de decodificación para decodificar las cargas útiles de los eventos a los que se suscribe:
    import avro.schema
    import
    avro.io def decode(schema, payload):
    schema = avro.schema.Parse(schema)
    buf = io.BytesIO(payload)
    decoder = avro.io.BinaryDecoder(buf)
    reader = avro.io.DatumReader(writer_schema=schema)
    ret = reader.read(decoder)
    return ret
  5. Realice la llamada de suscripción y maneje cualquier evento que reciba. Decodifica las cargas útiles de los eventos con tu función de decodificación.
    mysubtopic = <your subscription topic>
    substream = stub.Subscribe(fetchReqStream(mysubtopic),
    metadata=authmetadata)
    for event in substream:
    semaphore.release()
    payloadbytes = event.events[0].event.payload
    schemaid = eevent.events[0].event.schema_id
    schema = stub.GetSchema(pb2.SchemaRequest(schema_id=schemaid),
    metadata=authmetadata).schema_json
    decoded = decode(schema, payloadbytes)
    print("Got an event!", decoded)

Regístrese para el piloto

La API de Pub / Sub abre un nuevo mundo de posibilidades para los desarrolladores de Salesforce. Con una API que se suscribe, publica, recupera esquemas, controla el flujo y envía confirmaciones de publicación, nunca ha sido más fácil crear o mejorar integraciones impulsadas por eventos. La naturaleza en tiempo real y de alto rendimiento de los eventos enviados con la API de Pub / Sub lo hace óptimo para cualquier estructura de integración, y la disminución del tiempo dedicado al mantenimiento lo convertirá en el obsequio que sigue dando.

¡Indique su interés en probar la API de Pub / Sub a su ejecutivo de cuentas hoy! Después de que te inscriban en el piloto de agosto, recibirás la documentación de incorporación del piloto y ejemplos de inicio rápido en diferentes lenguajes de programación. Estamos muy emocionados de llevar esta nueva API a nuestros clientes y estamos ansiosos por ver lo que crean.

Sobre el Autor

Emmett Chen-Ran es Gerente de Producto asociado en el equipo de Event Bus (Plataforma). El programa APM permite a los nuevos gerentes de productos graduados trabajar en tres nubes diferentes durante ocho meses cada una antes de unirse a un equipo permanente. La rotación anterior de Emmett estaba en Sales Cloud, donde trabajó en Pipeline Inspection con el equipo de Pipeline Experience.

Esta es una traducción realizada por EGA Futura, y este es el link a la publicación original: https://developer.salesforce.com/blogs/2021/07/pub-sub-api-building-event-driven-integrations-just-got-even-easier.html

Entradas recomendadas