Introduce a Publishing Workers Layer

This commit adds a workers registry which allows us to call a worker
from the controller which in turn can call the services and perform them
asynchronously.

Also allowing tests to run as normal when creating  background workers.