Real-time updates have become an important aspect of the social Web that make it easier to share with friends. In March, we introduced a real-time News Feed to make the stream as relevant and engaging as possible for users. Similarly, FriendFeed, which we recently acquired, built their entire site to support real-time updates. It hasn't been easy to build and scale these features, so today we're open-sourcing a core piece of infrastructure called Tornado, which was originally developed by the FriendFeed team.
Tornado is a relatively simple, non-blocking Web server framework written in Python, designed to handle thousands of simultaneous connections, making it ideal for real-time Web services. Tornado is a core piece of infrastructure that powers FriendFeed's real-time functionality, which we plan to actively maintain. While Tornado is similar to existing Web-frameworks in Python (Django, Google's webapp, web.py), it focuses on speed and handling large amounts of simultaneous traffic.
Tornado also provides support for templates (you can also use Django templates), cookie handling and user authentication, security, localization, and static file serving.
It is no longer just the traditional Linux, Apache, MySQL, and PHP stack that make a site like Facebook or FriendFeed possible, but new infrastructure tools like Tornado, Cassandra, Hive (built on top of Hadoop), memcache, Scribe, Thrift, and others are essential. We believe in releasing generically useful infrastructure components as open source (see Facebook Open Source) as a way to increase innovation across the Web.
For more technical details about Tornado, check out the blog post from Facebook Director of Products, Bret Taylor. If you find this interesting, keep in mind that we're always looking for exceptional software engineers to join our team.
You can find Tornado's source code on GitHub, along with its documentation and a developer mailing list .
David, open programs manager, is gearing up to chase the next Tornado.