When Facebook acquired FriendFeed last month, everyone knew it was getting some pretty impressive technology along with the obvious talent in the company. What people probably didn’t expect is that Facebook would open source a portion of it. But that’s what they’re doing today with the release of Tornado, a real-time web framework for Python, onto the web.
Another new Facebook addition, Dave Recordon, explains the open-sourcing today on Facebook’s Developers blog. That Recordon is the one doing this post isn’t all that surprising given his central role in the open source community. Here’s how he explains Tornado:
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.
…
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.
FriendFeed co-founder Bret Taylor has more on his own blog. He notes that in open sourcing Tornado, FriendFeed and Facebook hope that others will use it to build their own real-time web services. They have set up a demo of how it works at its most basic (commenting) here. As you can see, it looks a lot like the FriendFeed commenting system (pictured below).
Taylor lays out three key parts of Tornado:
All the basic site building blocks – 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.
Real-time services – Tornado supports large numbers of concurrent connections. It is easy to write real-time services via long polling or HTTP streaming with Tornado. Every active user of FriendFeed maintains an open connection to FriendFeed’s servers.
High performance – Tornado is pretty fast relative to most Python web frameworks. We ran some simple load tests against some other popular Python frameworks, and Tornado’s baseline throughput was over four times higher than the other frameworks:
But there’s more. Buried in Recordon’s explanation is the following:
Tornado is a core piece of infrastructure that powers FriendFeed’s real-time functionality, which we plan to actively maintain.
I’ve bolded the key part there. That would seem to suggest that Facebook is now committing to activity maintaining FriendFeed. While the FriendFeed co-founders have more or less said that the service would live on despite the Facebook deal, Facebook has been pretty mum on the topic up until now. Of course, Facebook could simply be saying that it will maintain the technology (for its own uses), and not the service.
Next question: How long until Twitter starts using some components of Tornado?
You can download and find out more about Tornado here.

[photo is an altered version of the great Toronado bar logo]

Real-time services – Tornado supports large numbers of concurrent connections. It is easy to write real-time services via long polling or HTTP streaming with Tornado. Every active user of FriendFeed maintains an open connection to FriendFeed’s servers.








I did not expect that. Kudos to FB.
Twitter using Tornado. Think you have suggested a great idea to Twitter. But wonder if Twitter will use it. I wish they get their site up and running all time without downtimes…
haha, don’t count on it. said more in jest
Facebook’s next missile!By acquiring Friendfeed it has to give some pretty impressive technology along with the obvious talent which ahould be more significant than the Facebook page. Now with the launching of Tornado which is capable of designing thousands of simultaneous connections, making it ideal for real-time web services.
It will be a good competitor to Twitter!
Twitter uses a similar method to display new search result counts, hopefully this will be extended with more detail.
“Facebook could simply be saying that it will maintain the technology (for its own uses), and not the service.” – I guess you are right. Maybe this is what Zuckerberg has in mind. FB is not idiotic to encourage its competitor brand (in the name of FriendFeed). But using the technology? Wonder if FB knows to do that properly… already there is too much of clutter on our FB pages. Hope they use technology to launch FB lite soon.
I didn’t expect Tornado because I am not an engineer, but I totally expected Facebook and Friendfeed to start building the cross-platform discussion technology of the future, and Tornado seems to be the first piece of the puzzle.
I wrote about it yesterday:
Will Facebook/Friendfeed Build The Cross-Platform Conversation Technology Of The Future?
Group conversation, perhaps. But a client-server model for person-person conversation is a bad model however fast the server technology may be.
Well my link doesn’t work, bummer
What, no photo credit for stealing the logo from Toronado (the best beer bar in the world)?
At least give a link to http://toronado.com
Cheers,
Jeff
Great bar, maybe not the best in the world or San Fran. La Trappe is hard to beat.
BTW I thought the same thing when I saw the logo.
good point, will do. they deserve better
Toronado also has a spot in North Park, San Diego; it pretty much rules.
That’s one handsome coaster. A must-have for every brewsnob’s collection
Yeah a nod is in order to my neighborhood bar as I don’t think the owner would take too kindly to seeing her logo used like this. La Trappe might be good but it doesn’t have the character nor balls of steel like Toronado…
Well put.
Let’s get MG Siegler 86′ed…
Maybe facebook is open sourcing this to water down the real time efforts of twitter. Facebook already has a massive user base. If they allow many developers an opening to real time tech to pull market share from twitter, twitter will shrink and since the core concept of facebook (connections) is different than that of twitter (communication) it wouldn’t be as affected by new competition.
Or not.
Curious to know what the relationship is similar frameworks such as CometD and Orbited.
http://cometd.org/
http://orbited.org/
We built our iPhone chat service Indalo (to be renamed nearIM) on CometD which is a pretty neat protocol.
I understand the inter-operability of using Python and a Python powered web server, however, nothing can beat YAWS (Erlang built web server) when it comes high availability, fault tolerance, and concurrency.
Too bad they didn’t try to make use of it.
“How long until Twitter starts using some components of Tornado?”
The real question is “How long until people come out with an opensourced (and decentralized) product using Tornado for microblogging”. Soon I believe.
The famous San-Francisco pub who’s logo appears at the top is named Toronado, you can see they erased the A for this article.
Wow that’s pretty huge. Nice move.
http://www.tech...nd-twitter-lite
good articles: http://iamned.blogspot.com
Now create a twitter clone that is faster and more robust than the original is easier.
Anybody thinks that he is good enough to do that?
If yes, join the project:
http://code.goo...p/open-twitter/
We need webdesigner, JS guru and python wizards. Anybody that can donate a Linux shell to run the prototype of the project is also very welcomed.
Why is OpenSource only good at copying ideas from existing products and perfecting it (I am sure someone is going to point to one or exceptions) rather than creating new ideas or letting the people with original ideas benefit from it?
Funny that you posted that in a thread about Tornado, a completely new project (albeit similar to other open source projects), but still… There’s no closed-source uber awesome web server optimized for real-time Tornado is a clone of.
Besides, developers like the challenge. Without the open-source community freeing technology, those that own the code will cease to innovate. Firefox & IE is the most notable example of this.
I was responding to the Twitter clone project not Tornado. Commercial projects that were original and unique subsequently made OpenSource (Tornado, Android etc) are not the problem.
As to your point, OpenSource can also stifle innovation by making it commercially infeasible for new entrants to come in with radical steps forward because it will soon be copied by the OpenSource project if successful. The OpenSource community itself, because of the process and the hubris that collects around it, might never do that leap themselves.
OpenSource is good for stabilizing and continuing stable, commoditized products but setting up projects to clone/copy existing one-of ideas AFTER they have succeeded seems like stealing ideas to the detriment of the people who came up with the ideas. What is the difference between this and Asian companies creating knock-off clones that people have objected to before? Is it any nobler because it is crowd-sourcing and free?
I am not sure the Twitter clones will succeed but if (and that is a big IF) they destroy any business model for Twitter (and they can do so not by doing it better but by fragmenting the market) then it seems like they got a free-ride after Twitter had established the market and killed the very company that made the ideas possible and proved its feasibility.
Bottom line, if someone can’t produce something with more to offer than what someone else is giving away for free, they don’t deserve to make any money.
There is tons of money to be made in open source, you just have to actually provide something more than just code.
@derek, seems like you are missing the point. Before Twitter established the widespread use, marketed it and established the adoption, no one in open-source was willing to take the risk and build something that may or may not take off (how many open source projects are there to write new Facebook or iPhone apps with ideas that already don’t exist?). Even if they do, there aren’t many good examples of such innovative things taking off.
Twitter took the risk, spent money to spread the adoption so that the mainstream got used to it and now open-source communities want to come and clone it and depend on the work done by Twitter to popularize the concept. That seems parasitic to me.
With your logic, there would be no point to building any software commercially because most software can be copied and cloned by open-source projects. But open-source seems to look for ideas that are proved in the market and skim the cream off the top of proven concepts rather than take the risk of working on new ideas themselves, so they need these companies to take the initial risk and then they want to destroy the model for it by cloning. You can put any kind of lipstick on that reality, but essentially that is what these twitter-clone projects are attempting to do.
There is more to succeed in ideas than just code.
This has nothing to do with whether open-source can make money or not. Yes, they can. But that is an unrelated point.
Why do we consider such parasitic behavior more nobly than if Facebook or Google were to clone another company’s ideas?
Tip: you probably don’t want to use “Twitter” in the name. “Tweet” is fair game, and maybe “Twit”, but “Twitter” is trademarked.
Also, there are already 3 open source Twitter clone projects that I can think of off-hand, Laconi.ca, Jaiku Engine, and OpenMicroblogging.org. Not saying we don’t need more if you can bring something new to the party, but research their strengths & weaknesses first.
You mean StatusNet, Laconi.ca just changed their name. And yes, they are THE open source twitter clone, and always have been.
Wasn’t it like two seconds ago that Facebook was talking about how Erlang was the perfect choice for real-time communication and the heart of it’s chat impl?
I wonder if FB tech fiefdoms are being challenged currently in their org.
You’ve got a point here Ivan.
However, a bit of openness in there code might results in nice innovations
Very cool news — I’ll have to look into how easily this gets up and running, but it definitely seems like an amazing gesture from the Facebook guys.