Tornado in Depth

Tornado is a non-blocking light-weight web server and framework. There’s been many introductory talks about it, and it’s time to look deeper into it: not just what Tornado does, but how it does it and what can we learn from it when designing our own concurrent systems.

We’ll cover each topic in two parts: first we’ll see how to use a certain feature in our applications; then, we’ll dig into Tornado’s source code to see how it really works. How much time we’ll spend in the “how to use” will depend on the audience’s knowledge of Tornado.

Getting Started: quickly get a simple Tornado application up and running. We’ll keep digging into, changing and poking this Application for most of the talk.

An Application Listens: what an Application is, how does Tornado start it and how does it process its requests.

Application and IOLoop: we’ll look at how the IOLoop receives the connections from the users and passes them on to the Applications.

Scheduled Tasks: we’ll see how to schedule tasks and how the IOLoop will run them.

Generators: we’ll learn to use generators to handle the responses of our asynchronous calls, and how they work with the IOLoop.

Websockets: how to use them and how they work.

IOStream: how do Tornado’s non-blocking sockets work.

Database: how to use non-blocking sockets to connect to a MySQL database.

Process: how Tornado works with multiple processes.

About the speaker

I'm a Python developer and I work as a software architect at Paylogic, a boldly growing ticketing platform in the Netherlands. I come from Catalonia, a nation that (like HTTP) does not have a state. Maybe this is what made a developer of me. I started with dBase III and x86 assembler, and after having spent many years writing Java for banks and PHP for the porn industry I moved North and switched to the relative decency of Python and event tickets.When I'm not coding I'm biking around on my recumbent bike or desecrating old master's works on my piano.