Brett Taylor discusses this issue in his tech talk on Tornado (<a href="http://bret.appspot.com/entry/tornado-tech-talk" rel="nofollow">http://bret.appspot.com/entry/tornado-tech-talk</a>). He uses a hybrid approach: Use synchronous programming when requests block for a short time (fetching data from local db or memcache) and async programming when something blocks for a long time (calling out to third party services, long polling requests).<p>He does not go all async because programming with callbacks or deferreds is more complicated than straight line synchronous programming.<p>Brett also mentions that the instances of the server are created once and reused. He does not fork an instance of the server per request.