---
title: "Pummelling the Platform–Performance Testing Shopify"
description: "Shopify prepares for high-traffic sales events such as BFCM by repeatedly simulating customer traffic on representative test shops, aiming to expose bottlenecks before merchants experience them. Its Platform Conditioning team supports service-owning teams with approachable performance-testing tools and processes, distinguishing load tests for known traffic levels from stress tests that push services toward failure. A Go load generator runs Lua flows through lightweight VMs, models realistic traffic shapes and costly endpoints, and can issue tens of millions of requests per minute or more. Tests are initiated through Slack using the internal ChatOps tool Spy, which returns links to dashboards, logs, and results. Cronograma provides formal experiments with hypotheses, observations, conclusions, alert detection, Slack timelines, and comparable metrics such as response times, 5xx errors, and requests per minute; the tools have led to performance improvements and give Shopify confidence in future sales events."
---

# Pummelling the Platform–Performance Testing Shopify

[Shopify](https://yomu.fyi/company/shopify) · 2023-10-18 · Dec 2, 2020

**Type:** Explainer

## Summary

Shopify prepares for high-traffic sales events such as BFCM by repeatedly simulating customer traffic on representative test shops, aiming to expose bottlenecks before merchants experience them. Its Platform Conditioning team supports service-owning teams with approachable performance-testing tools and processes, distinguishing load tests for known traffic levels from stress tests that push services toward failure. A Go load generator runs Lua flows through lightweight VMs, models realistic traffic shapes and costly endpoints, and can issue tens of millions of requests per minute or more. Tests are initiated through Slack using the internal ChatOps tool Spy, which returns links to dashboards, logs, and results. Cronograma provides formal experiments with hypotheses, observations, conclusions, alert detection, Slack timelines, and comparable metrics such as response times, 5xx errors, and requests per minute; the tools have led to performance improvements and give Shopify confidence in future sales events.

## Context

Shopify's deployments are immediately available to merchants and customers, while more than 1 million merchants rely on successful BFCM and other high-traffic sales events. The work addresses the need to identify bottlenecks and unexpected behavior before those events.

## Approach / What changed

The Platform Conditioning team enables service-owning teams to run repeated load and stress tests with a Go-based load generator executing Lua flows. Tests model realistic endpoints, traffic shapes, and durations, are initiated through the internal ChatOps tool Spy, and are recorded and compared in Cronograma with observations, alerts, conclusions, and operational metrics.

## Takeaways

- Load testing checks whether a service withstands a known traffic level, while stress testing increases load until the service reaches its upper limit or fails.
- The load generator uses Go workers and lightweight Lua VMs to execute flows that can issue tens of millions of requests per minute or more, but flows do not automatically execute JavaScript or request page assets.
- Cronograma records experiment hypotheses, Slack observations, triggered alerts, conclusions, response times, 5xx errors, and requests per minute so repeated runs can be compared over time.

**Tags:** [Go](https://yomu.fyi/topic/go), [Lua](https://yomu.fyi/topic/lua), [Performance](https://yomu.fyi/topic/performance), [Testing](https://yomu.fyi/topic/testing)

- Source: [Shopify](https://shopify.engineering/performance-testing-shopify)
- Source URL: https://shopify.engineering/performance-testing-shopify
- Ingested by Yomu: 2026-08-31T01:11:04.186Z

[Read original post](https://shopify.engineering/performance-testing-shopify)
