How Shopify Reduced Storefront Response Times with a Rewrite - Shopify
Aug 20, 2020

Summary
This post details the rewrite of Shopify's storefront rendering application, extracting it from the Rails monolith into a dedicated, high-performance service. It describes the architecture of the new implementation, which uses active-active replication and dedicated read replicas. A key technical contribution is the development of a verifier mechanism (Ruby service and Lua Nginx module) to compare the legacy and new implementations' outputs, and a dynamic routing module to gradually shift traffic to the new service based on verification results. The post also outlines the success criteria: feature parity, improved performance, and enhanced resilience.
More from the Storefront Rendering Performance trail
- Horizontally scaling the Rails backend of Shop app with Vitess - Shopify
- The Vitality of Core Web Vitals - Shopify
- How Shopify Dynamically Routes Storefront Traffic - Shopify
- Simplify, Batch, and Cache: How We Optimized Server-side Storefront Rendering - Shopify
- How to Do an In-depth Liquid Render Analysis with Theme Inspector - Shopify