Message passing is an extremely powerful concept and is one of the main features on which QNX Neutrino (and indeed, all past QNX operating systems) is built.
With message passing, a client and a server exchange messages (thread-to-thread in the same process, thread-to-thread in different processes on the same node, or thread-to-thread in different processes on different nodes in a network). The client sends a message and blocks until the server receives the message, processes it, and replies to the client.
The main advantages of message passing are: