The purpose of this document is to provide a short description of synchronous and asynchronous data transmission as they relate to the Cascade DataHub and Cascade Connect.
Consider the following diagram.

Task 1 is the initiator of a data transmission to task 2. In a synchronous transmission, task 1 will not be able to continue processing until it has either received a reply from task 2 or the message transmission has failed. The message may fail to send for a couple of reasons. The recipient task may die, which means the message will fail to be sent, or the attempt to send to task 2 will time out waiting for a reply.
There may be a substantial time delay associated with task 2 processing the message and then sending back the reply to task 1. In this example, task 1 will be said to be blocked on task 2 until it receives the reply to its original message.
In many mission critical applications, having one task blocked on another task is unacceptable because the blocked task is unable to perform its other duties for the duration of the message transaction.
Synchronous transmission is, however, a fast and reliable method of data transfer when it is critical that a task know that a message was received by the recipient, or when the sending task must have a response before it can continue processing.