Why the obvious approach breaks at scale

The naive implementation is straightforward: listen for Shopify product webhooks, then replicate the change to the other stores via the REST API. Works fine for a few hundred products and two stores. Falls apart quickly when you add a third store, a third currency, and 10,000+ SKUs.

The architecture that actually works

After two iterations, AAosync settled on a queue-based architecture. Webhook receivers verify HMAC, write to a MySQL queue, respond HTTP 200 immediately. A cron-driven processor handles the actual work ? fetching from master, applying FX rates with per-store multipliers, pushing via GraphQL bulk mutations.

Always respond HTTP 200 immediately after HMAC verification. Queue the work, don’t process it inline.

The result: 2.5 years without a failure

AAosync has been running in production since mid-2021. Over 2 million product update events processed. Zero critical failures.

Founder, ClickBrown · Christchurch, New Zealand

Sole Shopify developer at Army & Outdoors for 6.5 years. Builder of 11 live production systems across 4 regional stores. Writing about what actually works — not what sounds good in documentation.

Read more about →