<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" 
      xmlns:thr="http://purl.org/syndication/thread/1.0">
  <link rel="alternate" type="text/html" href="http://www.readwriteweb.com/archives/facebook_open_sources_friendfeeds_real-time_web_fr.php" />
  <link rel="self" type="application/atom+xml" href="http://www.readwriteweb.com/atom.xml" />
  <id>tag:www.readwriteweb.com,2011:/1/tag:www.readwriteweb.com,2009://1.16357-</id>
  <updated>2011-08-16T16:39:43Z</updated>
  <title>Comments for Facebook Open Sources FriendFeed&apos;s Ultra-Fast Real-Time Web Framework </title>
  
  <generator uri="http://www.sixapart.com/movabletype/">Movable Type 4.35-en</generator>
  <entry>
    <id>tag:www.readwriteweb.com,2009://1.16357</id>
    <link rel="alternate" type="text/html" href="http://www.readwriteweb.com/archives/facebook_open_sources_friendfeeds_real-time_web_fr.php" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.readwriteweb.com/cgi-bin/mt/mt-atom.cgi/weblog/blog_id=1/entry_id=16357" title="Facebook Open Sources FriendFeed's Ultra-Fast Real-Time Web Framework " />
    <published>2009-09-10T17:40:38Z</published>
    <updated>2009-09-10T17:57:19Z</updated>
    <title>Facebook Open Sources FriendFeed&apos;s Ultra-Fast Real-Time Web Framework </title>
    <summary>Facebook just announced that it has released Tornado, the real-time web framework that powers FriendFeed, as open source code. According to Facebook&apos;s David Recordon, Tornado is one of the core infrastructure pieces that power FriendFeed&apos;s real-time functionality. The framework, according to Recordon, is similar to other Python frameworks like Google&apos;s webapp or web.py, but is...</summary>
    <author>
      <name>Frederic Lardinois</name>
      
    </author>
    
    <category term="Facebook" />
    
    <category term="Real-Time Web" />
    
    <content type="html" xml:lang="en" xml:base="http://www.readwriteweb.com/">
      <![CDATA[<p><img alt="facebook_dev_logo_sep09.jpg" src="http://www.readwriteweb.com/images/facebook_dev_logo_sep09.jpg"  />Facebook just <a href="http://developers.facebook.com/news.php?blog=1&amp;story=301">announced</a> that it has released <a href="http://www.tornadoweb.org/">Tornado</a>, the real-time web framework that powers <a href="http://friendfeed.com">FriendFeed</a>, as open source code. According to Facebook's David Recordon, Tornado is one of the core infrastructure pieces that power FriendFeed's real-time functionality. The framework, according to Recordon, is similar to other Python frameworks like <a href="http://code.google.com/appengine/docs/python/tools/webapp/">Google's webapp</a> or <a href="http://webpy.org/">web.py</a>, but is faster and able to handle more simultaneous traffic than its competitors. On his personal blog, Bret Taylor, one of the co-founders of FriendFeed, explains the <a href="http://bret.appspot.com/entry/tornado-web-server">technical details behind Tornado</a> in more detail.</p>]]>
      <![CDATA[<p>Tornado is available under the <a href="http://www.apache.org/licenses/LICENSE-2.0.html">Apache open source license</a>. A <a href="http://chan.friendfeed.com:8888/">basic demo </a>of Tornado showing the commenting feature is available here.</p>

<p>Developers will now be able to tap into one of the core infrastructure pieces that made FriendFeed tick so well. While other services (like Twitter) tend to have a lot of trouble to scale up when they grow, FriendFeed never ran into these problems and Tornado was surely one of the main reasons why the site managed to stay up and running even when demand spiked during major events.</p>

<p>Here is what developers will get when they implement Tornado according to <a href="http://bret.appspot.com/entry/tornado-web-server">Bret Taylor</a>:</p>

<blockquote><ul>
  <li>
    <p><strong>All the basic site building blocks</strong> - Tornado comes with built-in support for a lot of the most difficult and tedious aspects of web development, including <a href="http://www.tornadoweb.org/documentation#templates">templates</a>, <a href="http://www.tornadoweb.org/documentation#cookies-and-secure-cookies">signed cookies</a>, <a href="http://www.tornadoweb.org/documentation#user-authentication">user authentication</a>, <a href="http://www.tornadoweb.org/documentation#localization">localization</a>, <a href="http://www.tornadoweb.org/documentation#static-files-and-aggressive-file-caching">aggressive static file caching</a>, <a href="http://www.tornadoweb.org/documentation#cross-site-request-forgery-protection">cross-site request forgery protection</a>, and <a href="http://www.tornadoweb.org/documentation#third-party-authentication">third party authentication</a> like Facebook Connect. You only need to use the features you want, and it is easy to mix and match Tornado with other frameworks.</p>
  </li>

  <li>
    <p><strong>Real-time services</strong> - Tornado supports large numbers of concurrent connections. It is easy to write real-time services via <a href="http://en.wikipedia.org/wiki/Push_technology#Long_polling">long polling</a> or HTTP streaming with Tornado. Every active user of FriendFeed maintains an open connection to FriendFeed's servers.</p>
  </li>

  <li>
    <p><strong>High performance</strong> - Tornado is pretty fast relative to most Python web frameworks. We ran some <a href="http://www.tornadoweb.org/documentation#performance">simple load tests</a> against some other popular Python frameworks, and Tornado's baseline throughput was over four times higher than the other frameworks</p>
  </li>
</ul></blockquote>

<p><img alt="tornado_speed_sep09.png" src="http://www.readwriteweb.com/images/tornado_speed_sep09.png"  /></p>]]>
    </content>
  </entry>

  <entry>
    <id>tag:www.readwriteweb.com,2009://1.16357-comment:157238</id>
    <thr:in-reply-to ref="tag:www.readwriteweb.com,2009://1.16357" type="text/html" href="http://www.readwriteweb.com/archives/facebook_open_sources_friendfeeds_real-time_web_fr.php"/>
    <link rel="alternate" type="text/html" href="http://www.readwriteweb.com/archives/facebook_open_sources_friendfeeds_real-time_web_fr.php#c157238" />
    <title>Comment from Shane Curcuru on 2009-09-11</title>
    <author>
        <name>Shane Curcuru</name>
        <uri>http://shane.curcuru.name/blog/</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://shane.curcuru.name/blog/">
        <![CDATA[<p>Sweet!  We knew something interesting was going to happen from the FB/FF 'merger', but I'm really happy to see them release this so quickly, and especially under the Apache License.</p>

<p>Now if the developers.facebook.com open source page just noted that many of the projects are based at Apache or the Apache Incubator (like Hadoop, Thrift, Hive, Cassandra), it'd be perfect.  </p>]]>
    </content>
    <published>2009-09-11T14:07:22Z</published>
  </entry>

  <entry>
    <id>tag:www.readwriteweb.com,2009://1.16357-comment:157236</id>
    <thr:in-reply-to ref="tag:www.readwriteweb.com,2009://1.16357" type="text/html" href="http://www.readwriteweb.com/archives/facebook_open_sources_friendfeeds_real-time_web_fr.php"/>
    <link rel="alternate" type="text/html" href="http://www.readwriteweb.com/archives/facebook_open_sources_friendfeeds_real-time_web_fr.php#c157236" />
    <title>Comment from Pater Mann on 2009-09-11</title>
    <author>
        <name>Pater Mann</name>
        <uri></uri>
    </author>
    <content type="html" xml:lang="en" xml:base="">
        <![CDATA[<p>This is great news! I will be looking very closely at this for one of my projects.</p>

<p>However, I am a bit concerned over the claims of speed that Bret Taylor made on his blog (as quoted above). He says: "Tornado's baseline throughput was over four times higher than the other frameworks" but 8213 is not over four times higher than the 2223 for Django (it is about 3.7 times). Also, that figure of 8213 was obtained by running four simultaneous front-ends - running 1 single-threaded front-end, Tornado was only 50% faster than Django. It would be interesting to know what the figures are for Django and web.py if nginx (a proxy server) is used to provide four front-ends to them. A comparison with some popular non-Python frameworks would also have been useful.</p>

<p>It is still a great achievement so I feel it is a shame that Bret spoiled it slightly by making inflated claims about the performance.</p>

<p>Just my 2c.</p>]]>
    </content>
    <published>2009-09-11T13:48:06Z</published>
  </entry>

  <entry>
    <id>tag:www.readwriteweb.com,2009://1.16357-comment:157025</id>
    <thr:in-reply-to ref="tag:www.readwriteweb.com,2009://1.16357" type="text/html" href="http://www.readwriteweb.com/archives/facebook_open_sources_friendfeeds_real-time_web_fr.php"/>
    <link rel="alternate" type="text/html" href="http://www.readwriteweb.com/archives/facebook_open_sources_friendfeeds_real-time_web_fr.php#c157025" />
    <title>Comment from Gianluigi Cuccureddu on 2009-09-10</title>
    <author>
        <name>Gianluigi Cuccureddu</name>
        <uri>http://www.agoramedia.co.uk</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://www.agoramedia.co.uk">
        <![CDATA[<p>This is interesting in the light of Google Wave.<br />
Surely both aren't focusing on the same target audience/purposes but there's certainly overlap.</p>]]>
    </content>
    <published>2009-09-10T18:20:03Z</published>
  </entry>

  <entry>
    <id>tag:www.readwriteweb.com,2009://1.16357-comment:157024</id>
    <thr:in-reply-to ref="tag:www.readwriteweb.com,2009://1.16357" type="text/html" href="http://www.readwriteweb.com/archives/facebook_open_sources_friendfeeds_real-time_web_fr.php"/>
    <link rel="alternate" type="text/html" href="http://www.readwriteweb.com/archives/facebook_open_sources_friendfeeds_real-time_web_fr.php#c157024" />
    <title>Comment from Steve Odom on 2009-09-10</title>
    <author>
        <name>Steve Odom</name>
        <uri></uri>
    </author>
    <content type="html" xml:lang="en" xml:base="">
        <![CDATA[<p>This is really cool. Big props to Facebook for releasing this.</p>]]>
    </content>
    <published>2009-09-10T18:16:01Z</published>
  </entry>

</feed>
