In the layered architecture Krzywda proposes, a service object's only job is to take params (from a form object or controller) and dispatch the right commands on the command bus to the domains. It returns nothing, can be tested by asserting commands on the bus, and the long-running call-vs-execute and return-value debates stop mattering. Much of the time the code can even live directly in the controller.