Performance & Infrastructure
Peak Season in a Pandemic: Rehearse the Biggest Online Holiday Ever
Every capacity model for this month is a guess wearing confidence, and the honest opening of this post is to say so. The holiday forecasts agree on direction and disagree on size. Commerce is shifting online at the compressed pace we documented in July. The season’s online share will set records by any model. Giving Tuesday projections for the nonprofit tier run hot on the same logic, since the spring and summer giving surges suggest a generous season meeting a digital-first audience.
What no model can supply is your number. The sites we serve are entering the highest-stakes November of the peak-load discipline covered here since 2008, with demand curves that have no usable precedent. The precedent year was a different world by March.
Guessing wrong is expensive in both directions. Under-provisioned means outages during the year’s revenue peak. Panic over-provisioning means budget burned on fear. The discipline that beats guessing in both directions is the same as ever: rehearsal. You cannot know the demand. You can know precisely how your systems behave as demand rises, where they break, and what you will do about it. That knowledge is purchasable this week at calm-week prices. The checklist below is the full discipline compressed to its highest-leverage items, sequenced for the time remaining.
Load-test the transaction path, because that’s the bottleneck
The core asymmetry our capacity coverage keeps teaching: browsing scales, transactions bottleneck. The read-heavy majority of peak traffic (product pages, campaign pages, the donation appeal) rides the cache and the CDN and survives multiples cheerfully. The transaction path is where every uncacheable, stateful, third-party step concentrates. Cart, checkout, payment handoff. Donation form, confirmation write. It is where peak days actually fail.
So test the bottleneck, not the brochure. Run realistic concurrency through the full purchase and donation sequences. Include the payment-provider round-trip in sandbox mode. Include the confirmation email trigger and the CRM write. Ramp to well past your most optimistic forecast, watching for the knee in the response curve. The knee is your real capacity number, and everything in your planning should be denominated in it.
The findings from this month’s client tests run true to the genre. The database connection pool sized for a gentler era. The payment webhook that serializes. The inventory check that locks. The donation form’s CAPTCHA service rate-limiting at exactly the wrong moment. Every one of these is a calm-week fix and a peak-day incident, and the difference is only the date of discovery. Test this week. The vendors’ sandboxes exist for it, the tooling is commodity, and the afternoon is the cheapest insurance on this quarter’s menu.
The rest of the checklist, compressed
Verify cache coverage for the logged-out majority: the campaign and category surfaces that take the read spike should be serving from edge cache at high hit rates. Verify with the header-inspection pass. Fix the cookie and query-string leaks that silently uncache pages. Confirm the purge path works before a mid-peak price change needs it.
Audit the third-party scripts, again and especially now: every tag is a peak-day liability you are hosting voluntarily. The chat widget, the personalization pixel, the review carousel. Each is a vendor whose worst day may be the same day as yours. The census, the async-loading pass, and the ‘do we still need this?’ pruning are due this week. Hold the checkout path to the strictest standard: nothing synchronous, nothing unaudited, nothing new.
Write the degradation ladder now, in a calm meeting: the ordered list of what switches off as load climbs. The recommendation engine before the reviews. The reviews before the search. The search before the checkout. The checkout never. Decide it with business and engineering together in October’s calm rather than in November’s incident channel, with the static-fallback tier staged for the informational surfaces. Degradation chosen in advance is service. Degradation improvised is outage.
Stage the demand you control: the send-in-waves email discipline, the promotion windows tiered rather than detonated, the drop mechanics that spread rather than spike. The cheapest capacity is the demand curve you flattened yourself.
Rehearse the incident hour: the tabletop, peak edition. Payment provider degrades at 11 a.m. on Giving Tuesday. Who notices, who decides, who communicates, on which staged status page. The hour surfaces the gaps at conference-room prices, and this year’s version should include the distributed-team reality. The war room is a channel now. Make sure it is named, staffed, and known.
For the nonprofit readers, the framing that funds the work
The Giving Tuesday paragraph, written to be forwarded to whoever approves the rehearsal time. The year’s most generous giving window will arrive on December 1 with record projections. Your donation infrastructure will meet it at whatever readiness this month’s decisions purchase. Donation-form failure during peak generosity is a preventable, rehearsable risk, not an act of weather.
The sector’s own reporting from prior years quantifies what an hour of form downtime costs in the peak window. The fixes surfaced by an afternoon’s load test are overwhelmingly modest. The pool sizes, the rate limits, the synchronous tags.
The asymmetry between rehearsal cost and failure cost is the entire argument. This is among the highest-return afternoons on the organization’s annual calendar. The commerce tier has revenue dashboards making the same case automatically. The mission tier deserves the case made explicitly, and this paragraph is it. Book the test, walk the tabletop, stage the fallbacks, and let December 1 be a day about generosity rather than infrastructure.
The year’s lesson, applied
For a year that has been one long capacity event. March taught that the sites rehearsed in calm coped in crisis. July taught that demand curves can compress years into quarters. This month applies both lessons to the one peak that is scheduled.
The peak will set records with or without your site upright. Those are the only two variables you do not control, and everything else in this post is one you do.
Rehearse or gamble. Those are the options, and they have always been the options. 2020, whatever else it has done, has at least made the stakes plain to every budget holder in the building. The discipline is twelve years old here. The season is three weeks out. The afternoon is available. Use it, and spend the peak watching dashboards that confirm what the rehearsal already taught you. That is exactly how a peak day is supposed to feel: boring, busy, and upright.