Build a real-time chat application where messages appear instantly to all connected users.
Create a live dashboard that pushes updates to thousands of browsers simultaneously without polling.
Develop a notification system that maintains persistent connections to deliver alerts to mobile or web clients.
Build a streaming data application that sends continuous updates over WebSocket connections.
Tornado is a Python web framework and networking library designed to handle a very large number of simultaneous connections efficiently. While many web frameworks handle one request at a time using a process or thread per request (which can get slow and memory-hungry at scale), Tornado takes a different approach: non-blocking I/O. This means it can handle tens of thousands of open connections at once without dedicating a separate thread to each one. This makes Tornado particularly well-suited for use cases where connections stay open for a long time, for example, long polling (where a browser keeps a connection open waiting for the server to push new data), WebSockets (a protocol for real-time two-way communication between a browser and server), or any application that needs to push live updates to many users simultaneously. A chat application is a classic example. Tornado is built on top of Python's asyncio system (the standard library's toolkit for writing asynchronous code), which means you use the standard async/await syntax to write handlers that don't block while waiting for network operations. A basic web server in Tornado involves defining a request handler class with methods for each HTTP verb (GET, POST, etc.) and registering URL routes that map web addresses to those handlers. You would choose Tornado when building a real-time or streaming web application in Python that needs to hold many connections open simultaneously, for example, a live dashboard, a chat service, or a notification system. Tornado was originally developed at FriendFeed and is written in Python.
Generated 2026-05-18 · Model: sonnet-4-6 · Verify against the repo before relying on details.