in src/main/scala/org/apache/pekko/persistence/dynamodb/journal/DynamoDBJournalRequests.scala [46:60]
def writeMessages(writes: Seq[AtomicWrite]): Future[List[Try[Unit]]] =
// optimize the common case
if (writes.size == 1) {
writeMessages(writes.head)
.map(bubbleUpFailures(_) :: Nil)(ExecutionContexts.parasitic)
} else {
def rec(todo: List[AtomicWrite], acc: List[Try[Unit]]): Future[List[Try[Unit]]] =
todo match {
case write :: remainder =>
writeMessages(write)
.flatMap(result => rec(remainder, bubbleUpFailures(result) :: acc))
case Nil => Future.successful(acc.reverse)
}
rec(writes.toList, Nil)
}