Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Tornado solves the specific problem of building web applications. What compatibility was tossed in accomplishing this goal? As far as I can tell, Tornado is compatible with HTTP, HTML and other related web standards.

What are some of the things that you can do with your version of Tornado that I cannot do with regular Tornado?



* Use relational databases (the mysql samples shipped with tornado blocked all network traffic while mysql was performing a query).

* Use non-relational databases (I have a couchdb interface for twisted, and a blocking one for regular python, nothing for tornado)

* Use memcached (it's fast, but it blocks)

* Make long-lived streaming http requests (cited in my blog post)

* Spawn and communicate with subprocesses that might be not be instant

* Schedule periodic execution of events (including http requests)

* Run efficiently on BSDs and OS X

* Send email

* Do DNS lookups (important part of making service requests)

* Use work queues (beanstalkd, gearman, ampq, etc...)

These are things I do with twisted today (though I've got at least one app I've moved to node.js for small kind of small scripty sorts of thing).

Again, you can run arbitrary python code, but if it blocks, it stops all traffic from flowing and new connections from coming in.


All of these things are possible with Tornado by using simple blocking calls and running more than one instance of the Tornado application behind a reverse proxy. If one instance blocks, then there are other instances of the application to handle new requests.

FriendFeed uses Tornado with MySQL (I learned this from Brett Taylor's blog). It seems to work.




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: