make message processing asynchronous from the web thread