RE: Notify external system via a web service
There is another approach which is often used by the ETL systems (I believe Scribe is still using it.. ConnectBridge..)
You can create some sort of queue in Dynamics (could be a custom entity, for example), record all changes in that queue using a plugin, and, then, pull data from that queue and push it to the other application using some external mechanism(scheduled custom app, scheduled SSIS job, etc). The benefits of this approach are:
- If the connection between the plugin and your app breaks temporarily, you are not going to lose any data. The plugin won't even notice those problems since it's not pushing data directly to your app
- If there is a slow down (or high load), you can take your time using this approach. With the plugin, you are limited to 2 minutes in the sandbox..
- If something goes wrong, you can mark that data in the queue somehow, investigate, and re-run. With the plugin, this kind of troubleshooting will be much more complicated