So, have you been amazed by thin's async.callback? If not, go check it out. Come back here when you start missing your middleware. So what is the issue with Rack and async.callback? Currently there are two ways of triggering a async responds. The first is to throw :async, the latter to return a status code of -1 (even though thin and ebb do disagree on that). Opposed to what others say, I would re