Facebook Open-Sources FriendFeed Real-Time Web Server
Facebook has announced the open-sourcing of Tornado, a core piece of infrastructure that powers real-time Web services.
"Today, we are open-sourcing the non-blocking Web server and the tools that power FriendFeed under the name Tornado Web Server," said Bret Taylor, Facebook's director of products and co-founder and former CEO of FriendFeed, which Facebook now owns. Taylor made the comments in a Sept. 10 blog post. "We are really excited to open source this project as a part of Facebook's open-source initiative, and we hope it will be useful to others building real-time Web services."
Meanwhile, David Recordon, open programs manager at Facebook, explains that "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."
The Python-based Tornado Web server was designed to handle thousands of simultaneous connections. This makes it ideal for real-time Web services, he said. Indeed, "Tornado is a core piece of infrastructure that powers FriendFeed's real-time functionality, which we plan to actively maintain," Recordon said. "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."
That is what makes Tornado distinct from other frameworks -- that it comes with all the essential building blocks for supporting real-time Web services, Facebook officials said. Added Taylor:
"Tornado comes with built-in support for a lot of the most difficult and tedious aspects of Web development, including templates, signed cookies, user authentication, localization, aggressive static file caching, cross-site request forgery protection, and third-party authentication like Facebook Connect. You only need to use the features you want, and it is easy to mix and match Tornado with other frameworks."
Moreover, "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," Recordon said. "We believe in releasing generically useful infrastructure components as open source as a way to increase innovation across the Web."