INTEGRATIONS · OPERATIONS · 3PL · 1 SEPTEMBER 2026 · 7 MIN READ
Freezing your integrations before peak
Freezing your own repository is the easy half. The changes that break peak come from counterparties whose release calendar you have never asked for.
Yes — but a freeze that only covers code you control is about a third of the job. An integration has at least two owners, and the change that takes your orders out of your ERP on Black Friday is as likely to be your ERP vendor's release, your 3PL's warehouse system upgrade or a rotated credential as anything in your repository. So freeze the contract between systems — field mappings, webhook topics and endpoints, auth credentials, scheduled job cadence — from around four weeks before peak begins, get every counterparty's freeze window in writing by a stated date, and deliberately leave the operational controls unfrozen: backoff, concurrency, alert thresholds and the switch that puts an integration into manual mode. Freeze the contract, keep the throttle.
IN SHORT
- An integration has two owners, so a freeze that covers only your own deploys leaves the other half of every interface changing on somebody else’s calendar.
- Ask every counterparty for their own freeze window, peak support hours and escalation contact in writing, with a deadline — the ones without a freeze window are the risk you did not know you had.
- Shopify releases a new API version on the first day of each quarter, which puts a release on 1 October, inside almost every retail freeze.
- Shopify supports each stable version for a minimum of 12 months with at least nine months of overlap, so no API migration is genuinely urgent during peak.
- Shopify documents that a request to an inaccessible version falls forward to the oldest accessible stable version — a silent behaviour change, so check the `X-Shopify-Api-Version` response header rather than assuming.
- Shopify documents a five-second webhook timeout and a one-second connection timeout, and that it retries 8 times over 4 hours before removing an Admin API-created subscription — so an endpoint that merely gets slow under load can lose its subscription entirely.
- Shopify documents GraphQL Admin API restore rates of 100 points per second on Standard, 200 on Advanced, 1,000 on Plus and 2,000 on Enterprise, with a single query capped at 1,000 points regardless of plan.
- Credential and certificate expiry dates are the most avoidable peak incident there is: check every one of them in September and rotate outside the window.
What a code freeze does not cover
Most peak readiness plans contain a code freeze, and most code freezes are written by the team that owns the repository. That team can stop its own deploys. It cannot stop the ERP vendor shipping a quarterly release on 12 November, the 3PL migrating a warehouse onto a new WMS instance, the tax provider changing a response format, the payment gateway deprecating an endpoint, or the app in your admin auto-updating because that is what apps do.
Every one of those is a change to an interface your storefront depends on, and none of them appears in your change log. The list of incidents that actually take out peak trading is dominated by them, which is why "we have a freeze" and "our integrations are stable in November" are not the same statement.
So the useful reframing is this: you are not freezing your code. You are freezing the contract between systems — what is sent, in what shape, to which endpoint, with which credentials, on what schedule — and that contract has counterparties who need to agree to the freeze for it to mean anything.
The inventory, and the letter
Start with a list of every integration: what it connects, which direction data flows, what happens commercially if it stops for an hour, who owns it on your side and who owns it on theirs. If your team cannot produce that list in a day, the inventory is the project and the freeze can wait a week.
Then write to every counterparty on it, in September, asking four things and setting a date for the reply. It is a short email and it is the highest-leverage thing in this post.
- What are your change freeze dates, and what still ships during them?
- What are your support hours across the peak weekend, and does that include the Sunday and the Monday?
- Who do we ring, and what is the response commitment — a name and a number, not a portal.
- Are you planning any infrastructure change, migration or version deprecation between now and January?
Shopify is a counterparty too
The platform does not freeze for your trading calendar, and its calendar is public, so there is no excuse for being surprised.
Shopify releases a new API version on the first day of each quarter, which puts one on 1 October — inside most retail freeze windows. That is not a reason for alarm, because Shopify also documents that each stable version remains accessible for a minimum of 12 months with at least nine months of overlap between consecutive versions. Translated into a decision: no API version migration is ever urgent in November. If someone proposes one, the answer is January.
The behaviour worth understanding is what happens when a version does become inaccessible. Shopify documents that the request does not fail — it falls forward and is answered by the oldest accessible stable version. Your integration keeps working and starts receiving subtly different responses, which is a far worse failure than an error because nothing anywhere goes red. Pin the version explicitly on every request, and assert on the X-Shopify-Api-Version response header in whatever monitoring you already have.
Freeze the contract, keep the throttle
The freeze should be specific enough that anyone can tell whether a proposed change is inside it. Two lists, both short.
Frozen: field mappings and data transformations; webhook topics and endpoint URLs; authentication credentials, API keys and certificates; the set of scheduled jobs and their cadence; API version pins; queue and retry semantics; any new integration, however small; and the promotion path from staging to production.
Deliberately not frozen: backoff and retry timing; queue concurrency; rate limiting; alert thresholds; and the switch that puts an integration into degraded or manual mode. These are the controls you will need at 2am, and a freeze that includes them is a freeze that gets suspended during the exact incident it existed to prevent.
That distinction matters most around rate limits, because peak is when your integrations compete with each other. Shopify documents the GraphQL Admin API as restoring 100 cost points per second on Standard, 200 on Advanced, 1,000 on Plus and 2,000 on Enterprise, with any single query capped at 1,000 points regardless of plan. A catalogue sync, an order export and a stock update all drawing on the same bucket is a solvable scheduling problem in October and an outage in November — so the schedule is frozen, and the ability to turn one of them down is not.
The webhook detail that decides your order flow
If you read one specification before peak, make it the webhook delivery rules, because they punish slowness rather than failure and that is not what most teams have designed for.
Shopify documents a one-second connection timeout and a five-second response timeout, treats any response outside the 200 range as a failure, and retries 8 times over 4 hours. If a subscription created through the Admin API fails consistently, it is removed, with warning emails sent to the app's emergency developer email address.
Read that as an operational requirement rather than a technical note. An endpoint that does real work inline — writes to your ERP, calls a third party, waits on a lock — is fine at ordinary volume and starts exceeding five seconds under peak load. Once it does, Shopify is retrying, and if it keeps timing out you can end up with no subscription at all: orders stop arriving and nothing in your storefront looks wrong. The design that survives is the boring one — acknowledge with a 200 immediately, queue the payload, process asynchronously — and the pre-peak check is to confirm that every endpoint does that, that someone still reads the emergency developer email address, and that you monitor for a subscription that has quietly stopped existing.
When it starts and when it lifts
Start around four weeks before your peak begins. The reason is not superstition: integration faults surface under load rather than at deploy time, so a change made a week before peak has had no traffic against it that resembles peak traffic. Four weeks buys you at least one realistic volume test with the final configuration in place.
Lift it when returns and exchanges have settled, not on the Tuesday after Cyber Monday. January returns run through the same interfaces — refunds to your ERP, restocks to your WMS, credits to your accounting system — and the returns path is usually the least-rehearsed part of the stack, because everybody load-tests the buying and nobody load-tests the giving back.
One last thing worth saying plainly: a freeze is not a substitute for the work. Freezing a fragile integration preserves it exactly as it is, which is the point in November and an excuse by March. The list of things you dared not touch this peak is the roadmap for the first quarter — and the honest version of peak readiness is that most of it happens between January and September, not in the four weeks you spend not deploying.
Questions this raises
Should integrations be frozen before peak trading?
Yes — freeze the contract between systems around four weeks before peak begins: field mappings, webhook topics and endpoints, credentials, API version pins and job schedules. Leave the operational controls open, because backoff, concurrency and the manual-mode switch are what you need during an incident.
How do I freeze a system I do not control?
You ask, in writing, with a deadline. Request each counterparty's freeze dates, peak support hours, named escalation contact and any planned migration between now and January. The vendors who cannot answer are not being difficult — they are telling you where your risk is.
Does Shopify release API changes during peak?
Yes. A new version ships on the first day of each quarter, including 1 October. It is not a problem if you have pinned your version, because Shopify supports each stable version for at least 12 months with a minimum nine-month overlap — meaning no migration is ever urgent in November.
What happens if my integration uses an API version that is no longer supported?
It does not error. Shopify documents that the request falls forward to the oldest accessible stable version, so you receive answers from a version you did not ask for. Check the `X-Shopify-Api-Version` response header in monitoring, because this failure is silent by design.
Can a slow webhook endpoint lose orders?
It can lose the subscription. Shopify documents a five-second response timeout, retries 8 times over 4 hours, and removal of an Admin API-created subscription after consistent failure. Acknowledge immediately, queue the payload, and process asynchronously — then monitor for subscriptions that have disappeared.
When should the freeze be lifted?
After returns volume has settled, not the Tuesday after Cyber Monday. Refunds, restocks and credits travel the same interfaces as orders and are usually the least rehearsed part of the stack, so January is inside peak as far as your integrations are concerned.
NEXT STEP
Free store audit
A senior Shopify engineer reviews your storefront, theme performance and checkout, then sends a prioritised list of fixes.
