I know of the limitations of tornado's architecture on Windows: before today I didn't even know it was possible to run tornado on Win :D
To sum up, the problem is: web2py needs a pure python webserver that supports SSL. It needs to be runnable on Win, Mac and Linux (possibly on Solaris too). Raw performance tested with ab doesn't really care because of the way it's meant to be an app: if you need thousands of requests in parallel you don't need to run web2py in "development" mode, possibly you'll end up on unix and behind a webserver (apache, nginx) or gunicorn, circus, uwsgi, etc. just after facing other problems first (db access, to say the least) Anyway, of course, faster is better. There are some folks (me, for example) that are limited and can't use those "tools" on production on linux or behind apache (corporate rules madness, Windows environment, etc). For intranet web-apps, rocket is totally fine: concurrent users are never over 30 people in my case and I can afford having web2py in "deployment" while running on rocket (or motor :P). The big bottleneck is always the database for 90% of the apps. Rocket and Cherrypy are battle-tested on Win, tornado isn't (can't find an "official" endorsement of deployment on Windows in production). For users in the need to run web2py on different webservers under linux, there are plenty of possibilities with scripts (apache, nginx, uwsgi, etc) or anyserver.py (you can mount web2py in quite whatever wsgi runner you'd like to). For me, bases are covered with either rocket or cherrypy. As long as we can patch and support rocket while Tim regains some time to spend on it, I'm fine (after all, I think Massimo spent on it little time). Tornado (in the motor "incarnation") seems to need some more refinement to reach the "battle tested" status (don't know how much time you spent on it, but I'm glad you did anyway). Performance-wise, this tests acknowledged that is a valid alternative (given the due refinements). As long as there is someone willing to support motor and periodically check-in new code and patches from tornado source, and test it on all platforms, I'll be fine with replacing rocket with motor: the main point here is that it can run slower (up until it can compare with rocket) but can't crash on any condition (select() or epoll availability doesn't really matter on this "perspective"). If the time needed to include and support motor (given a gain in performances > 25% for normal apps) is more than the one virtually spent on rocket patches, I think that all the peoples in the need can turn to the way web2py yet provides, using anyserver.py (pip install tornado, python anyserver.py -s tornado is easy even for newbies). --