Another confusing part is what tasks the executor will run, all the subscribers of the publish and subscribe channel? For example, in your case, you defined a thread pool with pool size 10.
Does that mean all the subscribers will be run on this thread pool?
You can choose whatever task executor you want; the easiest is to use the <task: /> namespace, e.g.
<task:executor id="executor" pool-size="10"/>