Skip to navigation

How do you performance-test a high-demand ticket onsale?

Performance-testing a high-demand ticket onsale means rehearsing the full purchase workflow at realistic burst traffic and failure levels, not simply measuring how many homepage requests a website serves. Teams should simulate queue admission, event discovery, live inventory reads, basket reservations, checkout, payments and ticket confirmation while checking that no capacity is oversold.

What should a realistic test cover?

Model the expected arrival curve, including presale-code traffic, announcement peaks, customer refreshes and retries. Represent different customer journeys: browsing without buying, seat selection, multi-ticket baskets and checkout abandonment. Test with appropriate isolated payment environments and synthetic tickets; never run uncontrolled production purchases to reach a target.

LayerWhat to observe
Edge and queueArrival rate, admitted users, queue delay
Event and inventory APIsLatency by percentile, stale reads, throttling
ReservationsLock contention, hold expiry, duplicate reservation prevention
CheckoutPayment handoff, failed retries, completed orders
FulfilmentTicket issuance, notifications and delayed jobs
RecoveryRollback, replay, reconciliation and manual intervention

Which numbers matter?

Track successful orders per minute, p95/p99 latency, error rates, queue-to-checkout completion, reservation collision rates and the time required for dependent systems to recover. Average response time hides the slowest customers. Test both the target peak and a higher stress level to learn the failure mode.

What should happen when dependencies fail?

Rehearse a payment provider timeout, delayed message delivery, cache failures, scanner sync latency and an operator pausing admission. Retries need idempotency so that a customer clicking “pay” twice does not create duplicate financial transactions or duplicate ticket entitlements. Verify alert thresholds and named incident roles during a tabletop exercise.

Example: If the queue admits 1,000 buyers per minute but checkout can process only 500 successfully, the queue is not protecting the application; it is shifting congestion into basket and payment workflows.

When is a system ready?

Readiness requires passing business invariants (never oversell, never issue a ticket without a valid order), acceptable customer experience and an agreed recovery plan. Document assumptions: forecast demand is not observed demand, and synthetic testing cannot perfectly reproduce customers, payment banks or bot traffic.

More in Scale & Reliability →