Happy Business Starts Here

build API support to prevent race condition

0 Kudos

build API support to prevent race condition

Currently, if I have two subscription update request going through at the same time, I am not sure it will work correctly. The API I described is below:

 

https://www.zuora.com/developer/api-reference/#operation/PUT_Subscription

 

If I have a subscription that is 10 seats @10$/month for product A. Then there are two concurring request to change the subscription, requestX is "update quantity to 5 seats @ 10$/month" and requestY is "update quantit to 100 seats @ 10$/month". If zuora process requestX first and then requestY, it will end up with 100 seats, but if zuora process requesteY first and then requestX, it will end up with 5 seats". There is no way we can know which order it is done in some cases in a clean fashion.

 

The proposal is we add an optional field in the put subscription request of the subscription version that we want to modify. In backend Zuora make sure a put subscription request is operated on specific version.