Makes blocking and waiting for success/error optional, also allows concurrent use of the rest of the client while events are sent.
For simplicity one request is sent for each event/ping/check for each application. In the future it would be wise to batch together multiple events and multiple applications to avoid excessive chatter.