0

I have been looking into using the Streaming API for an upcoming integration project, and it seems like a modern way of providing near real-time data with durability. In the past I have let my integration layer receive SOAP Outbound Messages just fine.

What advantage would the Streaming API have over Outbound Messages, that would warrant having the limits that the API has?

I already saw this answer https://salesforce.stackexchange.com/a/28116/50604 , but it contains the non-durability limitation of the old API.

1
  • 1
    To those voting to close as "opinion-based" please explain why. This is asking for expertise, which is specifically the purpose of this site. Commented Apr 26, 2019 at 22:39

1 Answer 1

4

Outbound messaging is primarily server-driven. If your server went down for some reason, and you bring it back up, it would have to wait for messages to be delivered from Salesforce, which could take significant time; there's a "back-off" algorithm that increases the time between each attempted replay. In addition, because of this delay, it is possible for newer messages to be delivered ahead of older messages, which may have unintended consequences.

By contrast, the Streaming API is client-driven; this would allow the client to replay older messages immediately, bringing the external source up to date much quicker, and get the messages in the correct order. While both have a limit to message lifetime, Streaming API is superior in practically every way. Note that there's also a much better durability for messages in the high-volume Streaming API (72 hours instead of 24 hours), so a longer interruption won't cause as many missed messages.

Note that the old answer is outmoded. The Streaming API is much more reliable than it was back then. There's virtually no benefit to Outbound Messaging compared to Streaming API.

1
  • Thanks for the breakdown!
    – Kyle J V
    Commented Apr 24, 2019 at 22:30

Not the answer you're looking for? Browse other questions tagged .