Slide, a personal media network, has used Facebook as a Web vehicle. iLike discovery service has used Facebook for a music discovery service. Is Facebook surprised by businesses that are using Facebook to grow their businesses?
Agarwal: I'm not entirely surprised because I think that Facebook has -- it's such an important and useful communications utility -- but more than that, it also has an incredible amount of distribution. Like the distribution engine in the form of [Facebook] News Feed and all of the different other platform integration points that we offer. It's pretty compelling in terms of having a vehicle to kick-start the growth of a particular service or an application, which I guess which is just simply not provided in Web 1.0.
You've sort of mentioned this with Thrift, but what type of developer services does Facebook offer?
Agarwal: If you're a Facebook platform application developer, then obviously we have a number of client libraries. And the approach that we have taken is that we support some of the client libraries internally, but by and large, we let the developer community contribute client libraries in different languages because we feel that they are in a better position to maintain and optimize those particular client libraries. We have a suite of open source software, also, that we are happy to share with developers, Thrift being the major one there. We are going to be releasing a new open source software package called Scribe, which is a distributed logging framework that we use extensively in-house. We thought that we would give that back to the community as well. And a lot of the other open source projects that we work on that are not -- that were not created by us but we have contributed heavily to, such as memcached and obviously Apache, MySQL, and so on.
Does Facebook have any plans to participate in Google's OpenSocial Initiative? I know you've been a hold-out on that.
Agarwal: Actually, once again, I think that somebody from the platform product marketing team would probably be the best person to answer that.
I heard a presentation last week about Enterprise 2.0 and enterprise social networking. During the presentation, a Serena Software representative said the company is using Facebook as its collaboration platform. Is that something that's pretty widespread? Do you expect it to grow? And once again, is that something that Facebook would have expected three years ago?
Agarwal: It doesn't surprise me because, once again, a lot of our internal world view and how we approach the products that we build is that we want to be enablers for external applications, but also we are [a] communications utility. We are facilitating interactions between people. And for me, when you talk about enterprise collaboration software, that is one aspect of that. And what we build should allow developers and users alike to benefit in terms of building applications that provide that functionality and for users to actually be able to utilize that particular functionality.
How do you respond to criticism that the Facebook platform is a closed platform?
Agarwal: I will take an initial stab at answering the question, but I'm going to have to defer to the platform product marketing team. I think that I don't view it as a closed system. I actually view it as an enabler in the sense that we are enabling the ability for external Web sites and the application that you earlier mentioned to provide a compelling user experience in the form of new functionality. So I'm not quite sure I would view it as a closed platform.
What can you say about the infrastructure at Facebook? What powers Facebook?
Agarwal: I'd be happy to talk about that. We have two different kinds of code stacks, and I think I described one earlier, which is primarily running on Thrift and some other kind of core component that we have. The other part of our stack is something you mentioned briefly in your question, which is a kind of a LAMP stack, obviously running a Linux kernel. We modify that to be more optimized for our purposes, and then after that we are running the Apache Web server, we're running PHP, and we're running memcached, which is a distributed in-memory hash table. And we have 25TB of in-memory cache, which is kind of where more than 95 percent of our data access comes from. And we have MySQL, which is a persistence store on the back end, and we obviously dabble heavily in each of the underlying technologies to make them more efficient, make them more [higher performing] and basically help in scaling