Case 01
Keeping two older consumers on a contract they could still interpret
In September 2024, a proposed banking-service response introduced an optional field. The producing team considered the addition compatible because clients could ignore a field they did not use. A rehearsal across seventy-two known consumers found sixty behaved as expected, but twelve depended on a rigid response shape. For those applications, the producer's definition of optional did not describe the receiving behaviour.
The product team wanted a single transition date to simplify the release. Application owners were concerned that changing every dependent client at once would compete with already committed work. I asked for a versioned transition, with the older contract retained for consumers whose readiness had not been demonstrated. That choice added support and testing work. It also prevented the convenience of a single release date from deciding how much uncertainty a receiving team had to accept.
We spent seven weeks and USD1.4 million examining the consumer behaviour, adapting ten of the twelve rigid clients and rehearsing both contracts. The result was seventy consumers compatible with the new response and two remaining on the older contract. Their owners retained an explicit migration task and support arrangement. We did not describe the two as technically migrated because traffic could still reach the service through the existing route.
The enterprise gained a more precise transition account. A producing team could see which consumers had demonstrated compatibility, and application owners could identify the version they were relying upon. The result did not establish that every banking workflow using those consumers had been accepted for every possible change. It addressed the response contract examined in the rehearsal.
I accepted the cost of coexistence and asked for a reviewable exit condition, rather than treat indefinite dual support as the answer. Looking back, I would inventory actual parsing behaviour when proposing the interface change, before the word optional creates an expectation that receiving applications have no work to do.