salesforce pubsub api

Eventbasierte Integration mit Salesforce



Ausgangssituation


Um Datensilos zu verhindern, bieten Softwarehersteller diverse Möglichkeiten, mit Drittanwendungen Daten auszutauschen. Der Interessierte spricht hier allgemein vom API-Management, also dem „Managen“ von Schnittstellen, über die Programme mit anderen Programmen Daten austauschen können. Es gibt in diesem Umfeld einen riesigen Blumenstrauß an unterschiedlichen Technologien und Methoden. In diesem Artikel fokussieren wir uns auf die eventbasierte Kommunikation.

Das Thema Event (Ereignis-) basierte Kommunikation hat in den letzten Jahren eine immer stärkere Beachtung und Bedeutung bekommen. Die grundlegenden drei Ereignisse einer jeden Software sind die Ereignisse INSERT, UPDATE und DELETE. Also immer dann, wenn Daten erzeugt, verändert oder gelöscht werden, können diese „Ereignisse“ abgegriffen und einem oder mehreren Abonnenten, sogenannten „Subscribern“, zur Verfügung gestellt werden.

Was bringt mir das?

 

Stellen Sie sich vor, sie sind Maschinenhersteller, und jede Ihrer aufgestellten Maschinen kann Ihnen in Echtzeit eine vorhandene Störung übermitteln, auf die Sie direkt reagieren können. Unter Umständen noch, bevor der Kunde selber das Problem erkannt hat.

Oder ein Kunde meldet in Ihrem Serviceportal ein akutes Problem, dessen Ihr Unternehmen sich dringend annehmen muss. Der Kundenbetreuer erhält direkt eine Nachricht auf sein Smartphone und kann den Kunden unverzüglich kontaktieren.

Die meisten Chatbots verwenden eine ereignisgesteuerte Kommunikation zwischen dem Browser des Website-Besuchers und der Komponente, an dessen Ende eine Mitarbeiterin / ein Mitarbeiter oder eine generative KI „sitzt“ und sich um das Anliegen kümmert.

Mit Hilfe ereignisbasierter Kommunikation lässt sich eine Vielzahl technischer Probleme im Zusammenspiel verschiedener Softwareprodukte und Technologieren lösen.

Salesforce Platform Events

 

Salesforce bietet eine solche ereignisbasierte Kommunikation schon sehr lange. Bei entsprechendem Lizenzmodell kann man entweder auf Standard-Events oder auf selbsterzeugte Events reagieren.

Salesforce unterscheidet 3 Eventtypen:

  • High-volume platform events
  • Real-time event monitoring events
  • Change data capture events

Früher

 

Salesforce offeriert(e) diverse Schnittstellen und Technologien, die je nach Einsatzzweck genutzt werden konnten.

Das Bulk-API war dazu da, große Datenmengen per Batch entweder durch den Administrator angestoßen oder zeitgesteuert auszutauschen.

Für maschinellen Austausch von Daten gab es eine Implementierung auf Basis von SOAP (Simple Object Access Protocol) oder REST.

Die ereignisgesteuerte Streaming-API basierte auf einem Standard Namens CometD mittels einer Protokoll-Implementierung, die auf den Namen Bayeux hört. Eigentlich entwickelt für Realtime Browser Anwendungen (z.B. Chat-Bots) wurde diese Lösung in Salesforce für Plattform-Events implementiert. CometD hatte aber ein paar entscheidende Nachteile:

CometD ist sehr ressourcenintensiv und funktioniert nicht zuverlässig in Netzen mit großer Latenz. Insbesondere durch die hohe Ressourcenintensität war CometD nicht unbedingt geeignet für den Einsatz in Szenarien mit großen Datenmengen oder einer großen Anzahl an Abonnenten.

Heute: Ein API – Alles drin

pubsub
(Quelle: Salesforce)

Zum 30. Juni 2022 wurde das bis dato bestehenden Streaming-API durch ein neues Pub/Sub API abgelöst. Hier fiel die Wahl auf Apache Avro.

Apache Avro ist ein leistungsfähiges und flexibles Datenserialisierungsframework, das besonders in Big-Data-Umgebungen nützlich ist. Es bietet eine kompakte und effiziente Möglichkeit, Daten zu serialisieren und zu deserialisieren, unterstützt die Schema-Evolution (Änderungen und Versionierung einer Schnittstelle im laufenden Betrieb) und ermöglicht die Interoperabilität zwischen verschiedenen Programmiersprachen.

https://avro.apache.org/

Mittels des aktuellen Pub/Sub API hat Salesforce es geschafft, das in die Jahre gekommene CometD API in Rente zu schicken. Apache Avro ist ein sehr mächtiges Framework und erfreut sich einer starken Verbreitung.

Unsere Bewertung:

  1. Technologisch herausragend
    Die Salesforce Pub/Sub vereint die Vorteile einer schemabasierten Nachricht mit der einer codegenerierenden Nachrichtenübermittlung wie man sie von Googles Protobus kennt. Durch die Implementierung ist das neue Pub/Sub API für alle Einsatzzwecke geeignet. Einzelevents wie auch Massenänderungen.
  2. Schnell
    Durch binäre Datenübertragung reduziert sich das Datenvolumen jeder einzelnen Nachricht. Darüberhinaus geschieht auch das Serialisieren / Deserialisieren der Daten in native Formate wesentlich performanter als bei ASCII basierten Nachricht wie z.B. JSON.
  3. Sehr nah am Standard implementiert.
    Die Implementierung erfolgte sehr nah am Standard. Im Zuge der Tests mit den Java Beispielen halfen mir Forenbeiträge von Entwicklern mit dem gleichen Problem aus nicht Salesforce Gruppen. Mit Hilfe dieser waren Konfigurationsprobleme schnell gelöst.
  4. Wermutstropfen:
    Durch das binäre Format lässt sich die Nachrichten für den Entwickler nicht mehr ohne Weiteres einsehen. Einfache Aufrufe via curl oder Postman sind nicht mehr möglich, da die Nachricht erst unter Berücksichtigung des Nachrichtenschemas in das Zielformat konvertiert werden muss.

Dokumentation



Die Dokumentation ist sehr umfangreich. Codebeispiele sind verfügbar für fast alle gängigen Sprachen. (Bei mir war und ist es Java)

https://developer.salesforce.com/docs/platform/pub-sub-api/guide/intro.html

https://github.com/forcedotcom/pub-sub-api

Aus Sicht der Integrationsfähigkeit seiner Produkte ist Salesforce sehr stark aufgestellt. Wer sich mit eventbasierten Systemen beschäftigt wird schnell feststellen, dass Avro tatsächlich das Beste aus 2 Welten vereint: Binäre Datenübertragung mit dynamischen Schemata.

Unsere Leistungen für Sie

 

Seit über 20 Jahren entwickeln und betreuen wir kundenindividuelle Lösungen und erweitern Standardsoftware durch individuelle Komponenten. Ob im Vertrieb, im Service oder in der Logistik. Fordern Sie uns und nehmen Sie uns beim Wort.

Unser Motto:

Geht nicht gibt’s nicht. 

Scroll to Top