I want to enforce CQRS rules which (for me) means that the QueryBus and CommandBus should have exactly one handler per message. As far as I know, this cannot be enforced with a middleware. We have to add it to the bus configuration and handle it in the MessengerPass.