TechnicalApril 15, 2026·5 min read

How Shopify Keeps Checkout Working Even When Its Dashboard Is Down

Shopify separates checkout infrastructure from admin tools to ensure transactions process during outages. Here's the architecture behind it.

When Shopify's dashboard goes down, merchants panic. But customers rarely notice. That's not luck—it's deliberate engineering. Shopify has spent years building a checkout system that operates independently from the administrative interface. Understanding how they do this reveals principles that apply to any service where transactions matter more than tooling.

Separate Infrastructure for Separate Concerns

Shopify runs checkout on completely isolated infrastructure from its merchant dashboard and admin API. This isn't just database separation—it's different servers, different load balancers, different deployment pipelines. When a developer deploys a broken admin feature, the checkout fleet doesn't get touched. The checkout system has its own CI/CD pipeline, its own on-call team, and its own incident response procedures. This separation creates friction during development but eliminates cascading failures. A merchant dashboard outage literally cannot take down payments.

Read-Only Product Data With Aggressive Caching

Checkout needs product information—prices, inventory, tax rates—but doesn't need real-time admin edits. Shopify pre-computes and caches this data at the edge, often at the CDN level. When a merchant updates a product price in the dashboard, that change doesn't immediately propagate to checkout. Instead, it queues for the next cache refresh cycle, usually minutes. This delay is intentional. It means checkout can serve requests from cache even if the master database is struggling. The surprising part: merchants accept this latency for critical operations because availability beats real-time consistency.

Stateless Checkout Enables Horizontal Scaling

Checkout servers don't hold session state. Every request carries everything needed to process it—customer data, cart contents, payment method—usually encrypted in a token. This means you can spin up new checkout servers instantly without coordination. During Black Friday, Shopify can add thousands of instances in minutes because there's no state synchronization overhead. If one server dies, the customer's next request routes to another instance with zero loss. Statelessness is harder to build initially but becomes a superpower under load.

Payment Processing Decouples From Inventory

Here's the non-obvious part: Shopify doesn't check inventory during checkout. It processes the payment first, then handles inventory in a separate asynchronous system. This seems risky—what if inventory is actually zero? But it's actually safer. The payment system never needs to talk to the inventory database, so inventory problems can't block transactions. If inventory is wrong, the merchant gets an oversold order they can manually handle. But if payment processing stalls, money disappears from the customer's perspective. Shopify chose the lesser evil: allow occasional overselling rather than risk failed payments.

What You Should Do Tomorrow

Audit your critical path. For every service, ask: what's the minimum viable operation? Strip everything else into a separate system. If you run an e-commerce platform, payments shouldn't depend on analytics, recommendations, or even inventory checks. If you run SaaS, core data operations shouldn't depend on the UI layer. Design for graceful degradation: when the dashboard is down, checkout still works—even if it's slower or has reduced features. This requires extra infrastructure and more complex deployment, but the cost of downtime during peak traffic is always higher.

Track Shopify live status and outage historyLive status →
Check if a website is down right now

Free real-time server check — results in seconds. No sign-up required.

Or set up automated uptime monitoring →
Check a website
← Older
Why ChatGPT Goes Down So Often (And When It's Coming Back)