We have a microservice written in node.js & we use dynamoDB for data storage. Value is stored in json format against key. In update service call, we fetch value for a key, update the json & save it.
Recently, we came across a condition where 2 calls wanted to update the value of the same key. So first call read the value, then second call read the value, first call updated & saved, then second updated & saved the value (usual case of race condition), so in this case update by first call did not get reflected in DB.
To handle this, I researched a bit & came to know about the transaction library of dynamoDB. But it seems that it is not yet in node-js sdk.
Also, I searched about versioning & optimistic locking but again I did not find a support for this in node-js sdk.
Is there any update with this? If it's support is not going to come in near future in node-js sdk, what are the other options? What could be the best way to handle this issue?