The compatible migration pattern lets consumers depend on different API versions while sending every request to one API service that handles those versions. section 4.10
A version change module translates the latest service response into the consumer’s requested version. Separate modules apply transformations backward from the current version until the desired version is reached, keeping compatibility logic outside the core service code. section 4.10
Stripe-style version handling
Stripe uses declarative version change modules to transform resources returned by the latest API implementation for consumers using older API versions. This lets core developers add features without embedding every older-version rule in the service itself. section 4.10
Figure 4.6 Jean-Jacques Dubray’s three models of API version migration. The cost of version migration for each model is illustrated in the chart. (Source: This is adapted from JJ’s original diagram available at https://mng.bz/0GON, along with the accompanying equations.)
Compare the compatible pattern with point-to-point and knot migration models, including their differing version-maintenance costs. section 4.10
