in src/main/scala/org/apache/pekko/persistence/dynamodb/journal/DynamoDBRecovery.scala [512:525]
private[dynamodb] def getAllRemainingQueryItems(request: QueryRequest, result: QueryResult): Future[QueryResult] = {
val last = result.getLastEvaluatedKey
if (last == null || last.isEmpty || last.get(Sort).getN.toLong == 99) Future.successful(result)
else {
dynamo.query(request.withExclusiveStartKey(last)).flatMap { next =>
val merged = new ArrayList[Item](result.getItems.size + next.getItems.size)
merged.addAll(result.getItems)
merged.addAll(next.getItems)
// need to keep on reading until there's nothing more to read
getAllRemainingQueryItems(request, next.withItems(merged))
}
}
}