It should be noted that message passing is not intended to be used as a straight replacement for member function calls. A message is much more expensive than a function call (msg data is serialized) so if you post thousands of messages each frame you will kill performance. So use messages for high level communication between objects. If you run into problems with the number of messages the engine can handle you definitely need to rethink your design.