Webhooks delivered from Shopify are being improved to send payloads more efficiently
API
Effective January 08, 2018
We are introducing a number of improvements to how Shopify delivers webhooks.
Our existing webhooks implementation offers a poor experience for app developers on a number of dimensions:
- Flooding - A spike of requests on Shopify's side causes a spike of webhooks to be sent to apps (e.g., a flash sale). Apps have to design against this.
- Duplication - Our webhook implementation often sends duplicate webhook payloads in a short period of time. For app developers, this translates to increased hardware requirements for processing as well as additional contention for the affected resources.
We are introducing changes to improve the above issues that will have a twofold impact; a net reduction in webhooks received from Shopify, as well as short delay between an action and the webhook being sent in order to ensure that only the most recent state is communicated to your app.
For example, the following actions are performed in quick succession:
- A product is created
- A title is added to the product
- A description is added to the product
- A price is added to the product
Previously, the behaviour would result in a products/create webhook, and then three subsequent products/update webhooks, not necessarily in the order of changes made. After introducing these improvements, a products/create webhook would be sent, and then a single products/update webhook with the most up-to-date payload would be sent after a short delay.