Some quick thoughts: SaaS is unreliable from an integration point of view. There are times that SaaS is down for regular maintenance, software updates, or even just network issues. As integration engineers we need to build in reliability into our applications, and with SaaS being unreliable, this means there must be automated ways of dealing with downtimes.

1) Synchronous Integrations: Inform the customer that it’s down, handle the error well, and encourage re-submission of requests.

2) Asynchronous integrations: Queue messages for redelivery when the SaaS is back up from it’s maintenance window. Typically these maintenance windows are at hours when most engineers are not available, so you want to handle this automatically, since calling in engineers at midnight on Saturday is less than ideal.

Most simple integration examples do not take into account endpoint unreliability. Beware the simple solution!