Greetings!
I have an application that utilizes a DynamoDB table to manage counters. When we update the value of the counter, we consume the returned value - this returned value is the old value of the counter.
This counter is then used to retrieve a value in an array, it is effectively an index.
I currently increment these counters with Lambda functions - it's highly likely that many Lambdas may attempt to update the value of a given counter at the same time. It's important that each Lambda function receives a different value of the counter.
Utilizing DynamoDB atomic counters, can I expect that each Lambda function will receive a different value for the counter?
Example:
- 10 Lambdas attempt to update value of a counter where its current value is 0
- The Update Expression is "ADD count :incr" where ":incr" is 1
- Each Lambdas update is processed
- The returned value from each update is unique per Lambda and the values are 0 - 9
- The final value of the counter is 10
Fantastic, thank you for confirming!