I have a task that needs to accept msgs (normal strings) at the frontend, do some processing and convert those msgs to http requests that need to be sent to a backend server. So there are essentially two endpoints - frontend is a normal BSD socket. Backend is a urllib.HTTPconnection. Responses go the reverse way. However, this is not a request-response scenario. I could have a completely out of order req1->req2->resp2->req4->req3->resp3->resp1 ... type of asynchronous scenario. So I can't just do a: I have a task that needs to accept msgs (normal