Skip to content
All articles
Enterprise17 February 2026·8 min read

The cutover hour, written down in advance

The migration plan is agreed and the code is deployed. What remains is one hour where the wrong order of two steps signs out everybody at once.

Paycux engineering

By the time a change of authentication system reaches the cutover, the difficult thinking is behind you. The inventory is done, the credentials are moved, both systems have been running side by side for weeks. What is left is a single hour in which a small number of switches are flipped in a particular order.

That hour deserves a document of its own, written days before and rehearsed, because it is the point where a reversible project becomes an irreversible one and where the people involved will be tired and under observation. The plan does not need to be clever. It needs to be specific enough that somebody other than its author could execute it.

Write it as a list somebody else could run

The test of a runbook is whether a competent colleague who was not in the planning meetings can follow it. That rules out steps like switch the flag, and requires which flag, in which environment, by which command, and what the expected output looks like. It also means naming the person on each step, because a step with no owner is a step where two people either both act or both wait.

Include the checks between the actions. A cutover is not a sequence of changes, it is a sequence of change-then-verify pairs, and the verification is what gives you a defined point to stop at. Without them you find out at the end that step three failed, and the diagnosis has to unwind everything that followed it.

  • Pre-flight checks, run and signed off before anything changes
  • A freeze on unrelated deploys, announced with a start and an end time
  • Each action with an owner, an exact command and an expected result
  • A verification after every action, not one at the end
  • The abort procedure, written in the same detail as the forward path

Run it in shadow before it is real

The last thing to do before cutting over is to run the new path against real traffic without depending on it. Authenticate through the new system in parallel, compare the outcome with the current one, record any disagreement, and serve the answer from the old path regardless. Mismatches surface as data instead of as incidents.

Shadow running is where you learn the unglamorous things that no test environment produces: a password manager that fills a differently named field, a customer whose directory returns an attribute nobody had seen, a mobile client caching something it should not. Each of those would have been a ticket during the cutover, and each is now a fix made on an ordinary afternoon.

Every mismatch found in shadow is an incident you did not have, discovered on a day when nothing was at stake.

One person holds the abort call

Name them before the hour begins, and let it be somebody who is not executing the steps, because the person typing is the worst placed to judge whether the whole thing is going badly. Give them explicit criteria agreed in advance: sign-in failure rate above a stated level, support volume above a stated level, any authorisation error affecting more than a named number of organisations.

Agreeing the numbers beforehand is what makes the decision possible. In the moment, everything looks recoverable, every failure has a plausible explanation, and the natural human response is to push on for another ten minutes. A threshold set in daylight by somebody who was not invested in the outcome is the only mechanism that reliably overrides that instinct.

The first ten minutes, and the two days after

In the first ten minutes, watch the rate of successful sign-ins rather than the error log. Errors tell you what broke; the success rate tells you whether people are getting in, which is the only question that matters. Have a real account on a real device and use it. Have someone watching the support inbox, because users report symptoms your dashboards do not have a metric for.

Then keep the old path capable of serving traffic for longer than feels necessary. The decision to reverse can arrive days later, from a customer whose particular configuration nobody exercised, and a rollback path that was dismantled the same afternoon is not a rollback path. Set a date to remove it, put it in the plan, and delete it deliberately rather than leaving a second authentication system running quietly for a year.

  • Watch successful sign-ins per minute, not only the error rate
  • Sign in yourself, on a real device, before declaring anything
  • Keep the previous path serviceable past the point where it feels needed
  • Schedule its removal as a dated task, and carry it out on that date

Everything here, already built

Sign-in, enterprise SSO, directory provisioning, roles and an audit trail behind one API. Start with the quickstart and have a working sign-in this afternoon.

Start selling to enterprise customers

Create an account, point sign-in at Paycux, and get back to the part of the product that is actually yours.