Implementing asynchronous processing