A message consists of the method selector (name) and accompanying arguments that tell the receiving object in a message expression what to do.
The message translates the user's action into a specific instruction for the application.
A remote message that returns immediately, without waiting for the application that receives the message to respond. The sending application and the receiving application act independently, and are therefore not "in sync."
A remote message that doesn't return until the receiving application finishes responding to the message. Because the application that sends the message waits for an acknowledgment or return information from the receiving application, the two applications are kept "in sync."