It depends, do we need that the worker launch the process in sequence or async?
In this case it won't wait a lot, but all the provider stuff is returning a defer since needs some time to do the work.

I think that the options are:
* run every work in a thread and don't wait for the previous work task to start the next. This is what is currently happening when the `func` returns a defer, right?
* run every work 'normally' and we will have a delay to get some responses since the worker is processing others.