if (attempts > 0) {
// exponential backoff per DynamoDB recommendation
Thread.sleep((1 << attempts) * 1000);
}
attempts++;
BatchWriteItemOutcome outcome;
if (unprocessed == null || unprocessed.size() > 0) {
// handle initial request
outcome = dynamo.batchWriteItem(tableWriteItems);
} else {
// handle unprocessed items
outcome = dynamo.batchWriteItemUnprocessed(unprocessed);
}
System.out.println("outcome: " + outcome);
unprocessed = outcome.getUnprocessedItems();
System.out.println("unprocessed: " + unprocessed);
} while (unprocessed.size() > 0);
}