DynamoDB Enhanced Client: batch writes
See original GitHub issueDescribe the feature
Requested feature: batchPutItem(Collection<T>)
and batchUpdateItem(Collection<T>)
methods on DynamoDbTable
.
Use Case
The low-level client supports batch transactional writes, and the Enhanced client works by mapping POJOs onto low-level operations. I would like to write a series of records transactionally from POJOs, but the Enhanced client only supports single-record operations. Instead, I want to prepare the records to be saved and save them as a batch.
Proposed Solution
PutItemOperation
(with the other TableOperation
s) generates a PutItemRequest
, and the low-level client already supports the batchWriteItem
operation that takes multiple PutItemRequest
s and batches them. All of the existing logic for the Enhanced client could remain in place with a scatter-gather implementation that collects the generated requests and executes them via batchWriteItem
.
Other Information
No response
Acknowledgements
- I may be able to implement this feature request
- This feature might incur a breaking change
AWS Java SDK version used
2.17.260
JDK version used
OpenJDK 64-Bit Server VM AdoptOpenJDK-11.0.11+9 (build 11.0.11+9, mixed mode)
Operating System and version
Gentoo Linux
Issue Analytics
- State:
- Created a year ago
- Reactions:1
- Comments:7 (3 by maintainers)
Quick update: this was added to the backlog.
Anyone who’d like to see this supported in the Java SDK make sure to add a 👍 to the original description to help us with prioritization.
Regarding the
batchPut
, it can be written as aTableOperation
that takes aBatchWriteItemEnhancedRequest<T>
and returns aBatchWriteResult<T>
, where the request/result are more strictly typed versions of the already available types. That would also pave the road for supporting abatchDelete
.