separate pubsub and worker