Utilisation de l’API Pub/Sub
Objectifs de formation
Une fois cette unité terminée, vous pourrez :
- Décrire les caractéristiques de l’API Pub/Sub
- Décrire les différents produits d’événement pris en charge par l’API Pub/Sub
- Expliquer l’utilisation du bus d’événements et la spécification des options de récupération
Événements de diffusion en continu
Pour conclure notre enquête sur les API de données Salesforce, examinons une API utilisée dans un cas tout à fait différent. L’API Pub/Sub vous permet de vous abonner à des flux d’événements en temps réel et d’intégrer des systèmes externes avec des événements en temps réel. Les flux d’événements sont fondés sur des contenus personnalisés via des événements de plate-forme ou des modifications dans les enregistrements Salesforce par le biais d’une capture de données de modification. Dans Salesforce, vous pouvez publier et vous abonner à des événements avec des déclencheurs Apex, Process Builder et Flow Builder.
Comme nous l’avons mentionné dans l’unité 1, l’API Pub/Sub est conçue pour une intégration d’événements bidirectionnelle à grande échelle avec Salesforce. Utilisez l’API Pub/Sub pour publier des messages d’événements binaires au format Apache Avro et vous y abonner efficacement. L’API Pub/Sub est fondée sur gRPC et HTTP/2. Elle utilise un modèle qui repose sur l’extraction pour contrôler le flux d’abonnements. Le service de l’API Pub/Sub est défini dans un fichier .proto. Avec l’API Pub/Sub, vous pouvez utiliser l’un des 11 langages de programmation pris en charge par gRPC.
Le suivi des changements de données dans Salesforce est particulièrement utile si les données de votre entreprise sont stockés dans un système extérieur à Salesforce. Vous pouvez utiliser l’API Pub/Sub pour synchroniser votre source externe avec vos données Salesforce par le biais des événements de capture de modification de données. L’API vous permet également d’exécuter une logique de traitement dans un système externe en réponse aux changements apportés aux données dans Salesforce. Vous pouvez par exemple utiliser l’API Pub/Sub pour notifier un centre logistique dès qu’une opportunité est mise à jour.
Par ailleurs, vous pouvez utiliser l’API Pub/Sub pour envoyer des notifications personnalisées avec les événements de plate-forme. Par exemple, une application peut générer des notifications d'événement de plate-forme pour les commandes traitées par un service d’exécution des commandes. Une application peut également écouter les événements de plate-forme publiés par Salesforce pour surveiller l’activité des utilisateurs dans Salesforce.
API Pub/Sub et produits d’événement
Vous pouvez publier ces événements ou vous y abonner.
- Capture de données de modification — Cet événement vous permet d’obtenir les modifications des enregistrements de tous les champs modifiés pris en charge. Les opérations d’enregistrement comptabilisées incluent la création, la mise à jour, la suppression et la restauration d’enregistrements. Chaque message d’événement contient des champs d’en-tête avec des informations sur la modification.
- Événements de plate-forme — Avec les événements de plate-forme personnalisés, vous pouvez publier des notifications personnalisées et vous y abonner. Vous pouvez définir le schéma des données d’événement en créant des objets et des champs d’événement de plate-forme. En outre, vous pouvez vous abonner à des événements de plate-forme standard définis et publiés par Salesforce, tels que des événements de la Surveillance des événements en temps réel, pour surveiller l’activité liée aux utilisateurs et à la sécurité dans Salesforce, ainsi que d’autres éléments.
Tous les produits d’événement utilisent le bus d’événements, un service permettant le stockage et la récupération de messages d’événement.
Les événements de plate-forme ou de capture de données de modification offrent flexibilité, évolutivité et sécurité renforcée.
- Vous pouvez vous abonner à des événements de plate-forme et de capture de modification de données avec des déclencheurs Apex. De plus, les événements de plate-forme prennent en charge l’abonnement avec des flux et des processus.
- Ils prennent en charge le chiffrement au repos des données d’événement.
- Le schéma par version d’un événement de plate-forme ou de capture de modification de données permet aux abonnés d’analyser les événements de manière déterministe. Chaque version du schéma correspond à un ID de schéma unique, qui est inclus dans le message de notification de l'événement.
- La capture des données de modification comprend des champs d’en-tête contenant des informations sur la modification.
Récupération de notifications passées à l’aide du bus d’événements
À partir de la version 37.0 de l’API, les événements sont publiés sur le bus d’événements. Les abonnés récupèrent les événements d’un canal sur le bus d’événements, y compris les événements passés qui sont stockés temporairement. Le bus d’événements dissocie les producteurs d’événements des abonnés aux événements.
Salesforce stocke les événements de plate-forme de capture de données de modification à volume élevé pendant 72 heures. La récupération des messages d’événement stockés à partir du bus d’événements vous permet de rattraper les événements manqués lorsque le client a été déconnecté.
Chaque message d’événement se voit attribuer un identifiant opaque enregistré dans le champ ReplayId. La valeur du champ ReplayId est renseignée par le système lorsque l’événement est distribué aux abonnés, et renvoie à la position de l’événement dans le flux des événements. Les valeurs de ReplayID d'événements consécutifs ne sont pas nécessairement contiguës.
Un abonné peut stocker une ReplayID et l’utiliser au réabonnement pour récupérer les événements qui sont dans la fenêtre de rétention. Par exemple, un abonné peut récupérer les événements manqués suite à un échec de connexion. Les abonnés ne doivent pas calculer de nouvelles ReplayID à partir d’une ReplayID enregistrée pour accéder à d’autres évènements du flux.
De plus, il existe d’autres options de lecture, qui sont répertoriées dans ce tableau. Les options de lecture sont spécifiées dans l’énumération ReplayPreset
.
Option ReplayPreset | Description | Utilisation |
---|---|---|
CUSTOM avec ReplayID |
L’abonné reçoit tous les événements stockés après l’événement spécifié par la valeur replayId et les nouveaux événements. |
Prenez connaissance des événements manqués après un certain message d’événement, par exemple, après un échec de connexion. Pour vous abonner avec un ID de lecture spécifique, enregistrez l’ID de lecture du message d’événement après lequel vous souhaitez extraire les événements stockés. Utilisez ensuite cet ID de lecture lorsque vous vous réabonnez. Stockez les valeurs ReplayID sous forme d’octets, car les ReplayID sont opaques. |
LATEST |
L’abonné reçoit les nouveaux événements publiés après qu’il s’est abonné. |
Nous recommandons aux clients de s’abonner avec l’option LATEST afin de recevoir les nouveaux messages d’événement. Si les clients ont besoin d’obtenir des messages d’événement antérieurs, ils peuvent utiliser n’importe quelle autre option de lecture. |
EARLIEST |
L’abonné reçoit tous les événements, y compris les événements passés contenus dans la période de rétention et les nouveaux événements. |
Prenez connaissance des événements manqués et récupérez tous les événements stockés, par exemple, après un échec de connexion. Utilisez cette option avec parcimonie. S’abonner avec l’option EARLIEST lorsqu’un grand nombre de messages d’événement sont stockés peut ralentir les performances. |
Le diagramme ci-dessous montre comment les consommateurs d’événements lisent un flux d’événements en utilisant diverses options d’affichage.
Ressources
Documentation de l’API Pub/Sub
- Concepts de base des événements de la plate-forme
- Fondamentaux de la capture de modification de données
Platform Events Developer Guide
- Définition d’événements de plate-forme
- Publication des événements de plate-forme
- Abonnement à des événements de plate-forme
- Quelle est la différence entre les événements Salesforce ?
Guide du développeur de la capture de modification de données