Services invoked asynchronously run in background without blocking the service initiating the call.
the calling service receives a Correlation ID that will be passed in to the target service being executed
asynchronously as the latter's
self.cid so that requests can be correlated with responses.
Additionally, the source service can provide the name of a service that will serve as a callback sink consuming responses from the target service after it completes.
self.invoke_async so the target service is run in background.
A Correlation ID is returned on output - the target service can access it via
Invoke the target providing the name of a callback to execute once the target completes. Any response produced by the target
is available, as string, under
self.request.payload in the callback.
By convention, if there is a service whose name is the name of the invoking service plus -async-callback, that service will be used as the callback sink.
For instance, if a Python module contains a service with the name equal to that of the invoking service followed by
AsyncCallback, such as MyService and MyServiceAsyncCallback below, that service will be considered a callback for all asynchronous invocations -
here, all async replies to calls from MyService will be delivered to MyServiceAsyncCallback.