Verwenden der Pub/Sub-API
Lernziele
Nachdem Sie diese Lektion abgeschlossen haben, sind Sie in der Lage, die folgenden Aufgaben auszuführen:
- Beschreiben der Merkmale der Pub/Sub-API
- Beschreiben der verschiedenen von der Pub/Sub-API unterstützten ereignisbezogenen Produkte
- Erläutern des Zwecks des Ereignisbusses und Angeben von Wiedergabeoptionen
Streamen von Ereignissen
Zum Abschluss unserer Entdeckungsreise durch die Daten-APIs von Salesforce sehen wir uns eine API an, die einen ganz anderen Verwendungszweck hat. Mit der Pub/Sub-API können Sie Echtzeitereignisströme abonnieren und externe Systeme mit Echtzeitereignissen integrieren. Ereignisströme basieren auf benutzerdefinierten Nutzlasten durch Plattformereignisse oder Änderungen in Salesforce-Datensätzen mittels Datenänderungserfassung. Innerhalb von Salesforce können Sie Ereignisse mit Apex-Auslösern, Prozessgenerator und Flow Builder veröffentlichen und abonnieren.
Wie bereits in Einheit 1 erwähnt, ist die Pub/Sub-API auf die hochskalierte, bidirektionale Ereignisintegration mit Salesforce ausgelegt. Verwenden Sie die Pub/Sub-API, um binäre Ereignismeldungen im Apache Avro-Format effizient zu veröffentlichen und zu abonnieren. Die Pub/Sub-API basiert auf gRPC und HTTP/2 und verwendet ein Pull-basiertes Modell, sodass Sie den Abonnement-Flow steuern können. Der Pub/Sub-API-Service ist in einer PROTO-Datei definiert. Mit der Pub/Sub-API können Sie eine der 11 Programmiersprachen verwenden, die gRPC unterstützt.
Die Nachverfolgung von Datenänderungen in Salesforce ist besonders nützlich, wenn Geschäftsdaten in einem System außerhalb von Salesforce gespeichert werden. Mit der Pub/Sub-API können Sie mithilfe von Datenänderungserfassungs-Ereignissen dafür sorgen, dass Ihre externe Quelle mit Ihren Salesforce-Daten synchron ist. Die API ermöglicht Ihnen zudem, in Reaktion auf Datenänderungen in Salesforce Geschäftslogik in einem externen System zu verarbeiten. Sie können die Pub/Sub-API beispielsweise dazu verwenden, ein Fulfillment Center zu benachrichtigen, sobald eine Opportunity aktualisiert wird.
Zusätzlich zu Datenänderungen können Sie die Pub/Sub-API auch zum Übertragen benutzerdefinierter Benachrichtigungen mit Plattformereignissen verwenden. So kann eine Anwendung beispielsweise Benachrichtigungen zu Plattformereignissen für Aufträge erstellen, die von einem Auftragserfüllungsservice verarbeitet werden. Oder eine Anwendung kann auf Plattformereignisse achten, die von Salesforce veröffentlicht werden, um Benutzeraktivitäten in Salesforce zu überwachen.
Pub/Sub-API und ereignisbezogene Produkte
Sie können folgende Ereignisse veröffentlichen und abonnieren:
- Datenänderungserfassung: Mithilfe der Datenänderungserfassung zeichnen Sie Datensatzänderungen in allen unterstützten geänderten Felder auf. Zu den verfolgten Datensatzvorgängen gehören das Erstellen, Aktualisieren, Löschen und Wiederherstellen von Datensätzen. Jede Ereignisnachricht enthält Header-Felder mit Angaben zur Änderung.
- Plattformereignisse: Mithilfe benutzerdefinierter Plattformereignisse können Sie benutzerdefinierte Benachrichtigungen veröffentlichen und abonnieren. Sie können das Schema der Ereignisdaten festlegen, indem Sie Plattformereignisobjekte und -felder erstellen. Außerdem können Sie standardmäßige Plattformereignisse abonnieren, die von Salesforce festgelegt und veröffentlicht werden, z. B. Ereignisse der Ereignisüberwachung in Echtzeit, um u. a. benutzer- und sicherheitsbezogene Aktivitäten in Salesforce zu überwachen.
Alle ereignisbezogenen Produkte nutzen den Ereignisbus, einen Dienst, der das Speichern und Abrufen von Ereignisnachrichten ermöglicht.
Plattformereignisse und Datenänderungserfassung bieten Flexibilität, Skalierbarkeit und mehr Sicherheit.
- Sie können Datenänderungserfassungs- und Plattformereignisse mit Apex-Auslösern abonnieren. Darüber hinaus unterstützen Plattformereignisse das Abonnieren mit Flows und Prozessen.
- Sie unterstützen die Verschlüsselung von Ereignisdaten im Ruhezustand.
- Das mit einer Version versehene Schema eines Datenänderungserfassungs- oder Plattformereignisses ermöglicht Abonnenten, Ereignisse deterministisch zu analysieren. Jede Schemaversion entspricht einer eindeutigen Schema-ID, die in der Ereignisbenachrichtigung enthalten ist.
- Die Datenänderungserfassung enthält Header-Felder, die Informationen über das Ereignis enthalten.
Abrufen in der Vergangenheit liegender Benachrichtigungen mithilfe des Ereignisbusses
Ab API-Version 37.0 werden Ereignisse für den Ereignisbus veröffentlicht. Abonnenten rufen Ereignisse aus einem Kanal im Ereignisbus ab, einschließlich vergangener Ereignisse, die zwischengespeichert werden. Der Ereignisbus entkoppelt die Publisher eines Ereignisses von dessen Abonnenten.
Salesforce speichert Plattformereignisse mit hohem Volumen und Datenänderungserfassungs-Ereignisse für 72 Stunden. Das Abrufen gespeicherter Ereignisnachrichten aus dem Ereignisbus ermöglicht Ihnen, verpasste Ereignisse aufzuarbeiten, wenn die Verbindung mit dem Client unterbrochen war.
Jeder Ereignisnachricht wird eine undurchsichtige ID zugeordnet, die im Feld "ReplayId enthalten ist. Der Feldwert "ReplayId", der vom System eingetragen wird, wenn das Ereignis an Abonnenten gesendet wird, bezieht sich auf die Position des Ereignisses im Ereignis-Stream. "Replay ID"-Werte sind bei aufeinander folgenden Ereignissen nicht unbedingt fortlaufend.
Ein Abonnent kann einen Wiedergabe-ID-Wert speichern und beim erneuten Abonnement für den Abruf von Ereignissen verwenden, die innerhalb des Zeitfensters für die Speicherung liegen. Abonnenten können so beispielsweise verpasste Ereignisse nach einem Verbindungsfehler abrufen. Abonnenten dürfen keine neuen Wiedergabe-IDs auf der Grundlage einer gespeicherte Wiedergabe-ID berechnen, um auf andere Ereignisse im Stream zu verweisen.
Darüber hinaus gibt es weitere Wiedergabemöglichkeiten, die in dieser Tabelle aufgeführt sind. Die Wiedergabeoptionen werden in der Enumeration ReplayPreset
angegeben.
ReplayPreset, Option | Beschreibung | Verwendung |
---|---|---|
CUSTOM mit Wiedergabe-ID |
Abonnent empfängt alle gespeicherten Ereignisse, die nach dem mit seinem replayId-Wert angegebenen Ereignis stattfinden, und neue Ereignisse. |
Informieren Sie sich über verpasste Ereignisse nach einer bestimmten Ereignismeldung, z. B. nach einem Verbindungsabbruch. Um Ereignisse mit einer bestimmten Wiedergabe-ID zu abonnieren, speichern Sie die Wiedergabe-ID der Ereignismeldung, nach der Sie gespeicherte Ereignisse abrufen möchten. Verwenden Sie dann diese Wiedergabe-ID, wenn Sie erneut abonnieren. Speichern Sie Wiedergabe-ID-Werte als Bytes, da Wiedergabe-IDs intransparent sind. |
LATEST |
Abonnent empfängt neue Ereignisse, die nach dem Abonnementzeitpunkt des Client übertragen werden. |
Wir empfehlen Clients das Abonnement mit der Option LATEST, um neue Ereignisnachrichten zu empfangen. Benötigen Clients frühere Ereignisnachrichten, können sie eine der anderen Wiedergabeoptionen verwenden. |
EARLIEST |
Abonnent empfängt alle Ereignisse, einschließlich vergangener Ereignisse, die innerhalb des Zeitfensters für die Speicherung der Benachrichtigungen liegen, sowie neuer Ereignisse. |
Informieren Sie sich über verpasste Ereignisse und rufen Sie alle gespeicherten Ereignisse ab, z. B. nach einem Verbindungsabbruch. Diese Option sollten Sie nur selten verwenden. Ein Abonnement mit der Option EARLIEST kann die Leistung mindern, wenn eine große Anzahl von Ereignisnachrichten gespeichert wurde. |
Die folgende Abbildung zeigt, wie Ereignisnutzer einen Ereignis-Stream bei der Festlegung verschiedener Wiedergabeoptionen lesen können.
Ressourcen
Platform Events Developer Guide
- Defining Platform Events
- Publishing Platform Events
- Subscribing to Platform Events
- Was ist der Unterschied zwischen den Salesforce-Ereignissen?