in src/main/java/com/amazonaws/partners/saasfactory/metering/aggregation/BillingEventAggregation.java [221:242]
private void putRequestsAsTransaction(Update updateRequest, List<Delete> deleteRequests) {
List<TransactWriteItem> transaction = new ArrayList<>();
TransactWriteItem updateTransactionItem = TransactWriteItem.builder()
.update(updateRequest)
.build();
transaction.add(updateTransactionItem);
List<TransactWriteItem> deleteRequestItems = deleteRequests.stream().map(deleteRequest -> TransactWriteItem.builder()
.delete(deleteRequest)
.build()).collect(Collectors.toList());
transaction.addAll(deleteRequestItems);
this.logger.info("Transaction contains {} actions", transaction.size());
TransactWriteItemsRequest transactWriteItemsRequest = TransactWriteItemsRequest.builder()
.transactItems(transaction)
.build();
try {
ddb.transactWriteItems(transactWriteItemsRequest);
} catch (ResourceNotFoundException|InternalServerErrorException|TransactionCanceledException e) {
this.logger.error("{}", e.toString());
}
}