Understanding asynchronous service invocations