Important points
The most important design considerations when integrating your client system with Engage from scratch are:
The integration is most often synchronous, meaning you'll need to wait for Engage to respond before proceeding in your flow. The average response time for the API endpoints is generally short, but occasionally longer response times can be expected.
Always have a retry policy in place, based on the recommendations given here, in the case of extraordinary events such as network problems or the API responding slower due to heavy traffic. Retry logic makes your solution more reliable.
Build any redundancy and backup solutions on the client side. For example, a purchase should always be possible to complete even if you cannot get an answer from Engage API in a reasonable time for the actual scenario.
Implement error handling for occasions when the connection to Engage is down for whatever reason. Don't make your vital business processes depend on Engage always being reachable.
Whenever possible asynchronous flows should be used for non-time-critical API calls, for example sending orders and transactions to Engage for storage of purchases and triggering automations.
Ensure that your client application can handle heavy load and high data volumes without exceeding the API rate limits, for example, by implementing queues for non-time-critical messages.
Any contact IDs returned from Engage may be saved in your local systems and used in following requests to avoid unnecessary traffic to Engage, to simplify and speed up look-ups, and to generally improve your customer's experience.