I would think the Envelope should be injected as it is the one with most information. The message on it self only makes sense when dispatching to services, as it works as an ValueObject and should contain all information needed to do work based on it :)