ShopifyCamilo LopezExplainer
Preparing Shopify for Black Friday and Cyber Monday
Summary
Shopify’s Production Engineering team prepares its platform and 600,000+ merchants for Black Friday and Cyber Monday traffic without interrupting service. Preparation combines controlled fault injection “game days,” synthetic load tests, and staged freezes: a feature freeze begins several weeks ahead, followed by a code freeze allowing only critical fixes during the event. The tests probe dependencies such as shipping providers and payment gateways, including latency, fallback behavior, and responses to datastore failures. After the 2018 weekend, Shopify reported nearly 11,000 orders per minute, around 100,000 requests per second for extended periods, and overall metrics about 1.8 times 2017 levels. The account concludes that fault injection, load testing, and disaster role-play improved readiness, while third-party downtime remains Shopify’s responsibility to merchants and buyers.
Context
Black Friday and Cyber Monday is described as Shopify’s “World Cup.” During the 2018 holiday weekend, merchants generated over $1.5 billion USD in sales, while Shopify maintained a platform reported at 99.98% uptime.
Approach / What changed
Production Engineering uses controlled fault injection to degrade dependencies, introduces artificial latency, checks fallback behavior and datastore-failure responses, and runs synthetic load tests at expected BFCM volumes. The team also establishes a feature freeze several weeks before the event and a code freeze shortly beforehand and during it, permitting only critical fixes.
Takeaways
Game days test whether services behave reasonably when dependencies such as shipping providers become slow or fail, including whether fallback providers or hard-coded defaults work.
Synthetic load testing sends expected BFCM-scale traffic to applications to evaluate how systems and components behave under sustained request volumes.
Shopify uses a feature freeze and then a code freeze before BFCM to reduce workflow changes, bugs, and unexpected system interactions during peak traffic.
FAQ
What does Shopify test during a BFCM game day?
The team degrades dependencies under controlled conditions, such as adding artificial latency to shipping-provider code paths. It checks whether the system falls back appropriately or responds as expected when a dependency’s main datastore has problems.
Why does Shopify use both a feature freeze and a code freeze?
The feature freeze prevents meaningful user-facing changes that could alter merchants’ workflows while they prepare for BFCM. The later code freeze allows only critical fixes, reducing the chance of bugs or unexpected interactions during the event.
How did Shopify’s 2018 BFCM performance compare with 2017?
Most system metrics followed a pattern of about 1.8 times their 2017 levels. Shopify also saw nearly 11,000 orders created per minute and around 100,000 requests per second for extended periods.
Source and freshness
- Source
- shopify.engineering
- Published
- Added to Yomu
Summaries are generated from the original by a language model. Check the original before relying on it.
Keep reading
Related reading
The Good Stuff
Paid picks we use ourselves. Links carry a referral code — a subscription through one earns us a commission at no extra cost to you.
The best engineering reads, once a week
One useful email. Unsubscribe anytime.