merging pub-sub and push-pull