A command bus helps separating business logic from all the stuff that needs to be done to communicate over the web.

Shawn McCool wrote up a good overview about the subject.

Think of a typical controller. Inside, you might find interactions with the model, form validation, and response generation; which includes view template rendering or redirect header generation. Some of these actions are related directly to the web, some of them directly to the core of your application.

http://shawnmc.cool/command-bus