What are the drawbacks of using outbound messaging?
For me it has been frustrating to have them in place because there is no response logging mechanism, as far as I'm aware. This lack exacerbates the difficulty of having asymmetric validations in place. In practice, that means that often, a record will save but fail to sync. And we can't determine why simply by looking at Salesforce. Thankfully we have external logs to fall back on, but it's a pain and the main reason we plan to switch to a custom implementation.
I can't say there are any drawbacks.. Its just finding the right use case and applying which option to go with when integrating Salesforce with an external system..
With so many options around to integrate Salesforce with other applications,
- Lightning Connect
- Callouts
- Outbound Messaging
- Appexchange Packages
- Middleware / ETL Tools
it comes down to identifying
- the capabilities of the system you are integrating with,
- what tools and technologies you already have in place to reuse,
- time and effort you have to complete the integration
- buy vs build decisions
To me you can go with Outbound messaging, If you have control over the system you are integrating with and you can develop / build a custom listener to handle the outbound message and if your requirement to raise a notification is simple (since you have to depend on workflow rule to trigger the outbound message)
This biggest drawback for me is the fact the order that Outbound Messages arrive cannot be guaranteed.
Because of the re-try mechanism, it's possible that an Outbound Message may arrive 24 hours after it was sent, meaning Outbound Messages sent after the first may arrive before it.
From Considerations for Outbound Messages
Messages are retried independent of their order in the queue. This may result in messages being delivered out of order.