linq2dynamodb
linq2dynamodb copied to clipboard
Implement optimistic locking #8
- No more bulk operations for CUD, using async tasks instead
- Removing entities also respects version field
- Update caching behavior to handle partial failure in optimistic locking scenario
[Discussion belongs in the PR, not on the issue] Andy and I work together and I'm helping with this PR.
The PR brings up a few things I want to make sure fit into the design moving forward:
- If a CUD operation fails we'll get an
AggregateExceptionwith aConditionalCheckFailedExceptionbut no detail about the entity for which the check failed. We should probably create our own exception for this. TableDefinitionWrapperhas more complex add/update behavior.. We could probably put the responsibility of generating OperationConfigs in a different class.- We mutate an
EntityWrapper's document in the CUD operation. There may be a better way to propagate document changes back to the entity.
Was away for a while. Will have an updated PR soon.