TL;DR - In high-volume situations, the timeout for responding to rate requests from Shopify will be dynamically adjusted based on the number of requests per minute.
The timeout for CarrierService API rate requests will be changed to a dynamic value depending on how many requests per minute (RPM) are being made by the client. This change is to optimize the performance of checkout, while still giving apps the appropriate amount of time to calculate shipping rates. These limits are applied to each app-shop pair. The new timeout values are as follows:
- RPM under 1500: read timeout will be 10 seconds
- RPM between 1500 and 3000: read timeout will be 5 seconds
- RPM over 3000: read timeout will be 3 seconds
These values are upper limits and should not be interpreted as a goal to develop towards. The requests are also treated as tiers, so only those requests above a given threshold will be given a lower timeout.
Shopify is constantly evaluating the performance of the platform and working towards improving resilience as well as app capabilities. As such, these numbers may be adjusted outside of our normal versioning timelines. The data and statistics have shown the impact to our partner community with these thresholds are minimal.
For more information on the CarrierService API, read our documentation here: https://shopify.dev/docs/admin-api/rest/reference/shipping-and-fulfillment/carrierservice