TODO I wonder if there is a completion servce that can order the take in the same order as the tasks
was submitted, if so we can do aggregate to catch-up while still processing for more performance
this one completes all tasks before doing aggregation