One motivation behind this design was to have a separate queueing *service* (comparable to a third-party message broker) that is used by the `EventsourcedProcessor` independent of how the command queue internally manages commands. 

This separation would even allow us to add persistence (by mixing in `Processor` into `CommandQueue`, after some minor implementation changes) so that the queue can be recovered after a crash, for example. Another alternative could be to back it up by whatever message broker. All these implementation details however wouldn't affect the `EventsourcedProcessor` implementation.