Retry Logic
Ensure your integration has logic to 'retry' failed TCA requests that may occur due to any form of service disruption. Maintenance windows rarely do but can last up to 8 hours.
A typical implementation would be a 'scheduled background process' that runs every 10 minutes to retry previously failed TCA requests to ensure a submission moves through the workflow.
Without this, similarity reports would not be available for end users following a service disruption and likely result in queries to your support team. These issues would require investigation and manual processing to complete the TCA workflow for each failed submission.
Polling Logic to Cover Issues with Receiving Webhooks
In conjunction with 'Retry Logic', (possibly in the same 'scheduled background process') the integration should poll for status updates if a webhook was not received in a timely manner.
Issues can/have occurred where webhook callbacks start to fail when changes are made to the destination URLs, (SSL Cert issues, routing rule/firewall/proxy changes etc) and 'polling' ensures submissions still move through the workflow. Webhook callbacks are only retried for a maximum of 24 hours and cannot be 'replayed' after that period.
'Get Submission Info' returns the same response as the 'SUBMISSION_COMPLETE' webhook event and 'Get Similarity Report Info' returns the same payload as the 'SIMILARITY_COMPLETE' webhook event. A 'poll' to the appropriate request should be made if the webhook was not received after 30 minutes, (and every 30 minutes thereafter) for the TCA request that would trigger it.
An alert could be triggered in your logic if the process detects a lot of submissions for which webhooks have not been received. Your support team can investigate while end users will still have reports available.