I am working on a simple application (a backend for a frontend in Flex) which in most scenarios does the following:
- call external REST-ful web service
- fetch some stuff from the local database
- process and return both results
Will my application benefit from the fact that the Tornado web server is non-blocking? I mean, in terms of scalability and performance. What will be the bottle-neck here?
Oh yes. It will definitely benefit.
For the duration server is busy fetching external resources, it can continue to serve other calls, since the interpretor is not Locked.
In normal webservers you use something like Gevent to achieve this.
Also, with Tornado 2.1 and above,
Step1 and Step2 can be merged, as: