The Message Dispatcher (508) describes an approach whereby you add several performers to a pool. Each performer can run its own execution thread. One main consumer listens to the Message Channel (60) and delegates the message on to an unoccupied performer in the pool, then immediately returns to listening on the channel. This achieves the parallel processing benefit of Competing Consumers (502) but works on Publish-Subscribe Channels (106).

