Routines that do not wait for actions to complete before returning. Usually require local storage for messages.
More than one version depending upon the actual semantics for returning.
In general, they do not synchronize processes but allow processes to move forward sooner.
Must be used with care.