Lessons from Twitter: Build a social network the right way

By Mark Everett Hall
April 17, 2009 5:30 AM EDT
If you can't find a social network that fits your lifestyle, clearly you're not looking very hard. Lawyers have social networks. Moms have one. And there's even one designed for business colleagues inside a company.

But maybe there's a niche that hasn't been covered. So you or your boss might be chomping at the bit to build a social network, watch the traffic grow and strike it rich. (A profitable business model for social networks will eventually emerge, if you cross your fingers, twirl three times and repeat your business slogan backwards during each spin.) After all, just look at Twitter's amazing growth or Facebook's huge user population. There's got to be gold in social networks, right. Riiiiight.

Well, if not gold, at least lots of people. And with those people come expensive demands on your data center and network. Demands that have brought Twitter to its knees on more than one occasion.

So, how do you build a scalable social network? First, make smart technology choices. Skipping Ruby on Rails might be a start, given what Coding Horror says about the 100:1 performance penalty it can entail over compiled code like you get from C++ or VisualBasic.

Bruno Rovagnati, social network guru at Globant in Buenos Aires, Argentina, says while Ruby on Rails "is in fashion right now," it may not be the best language for high-traffic, performance-dependent sites.

But beyond picking the best language for the task, Rovagnati says there are things you can do during your development phase to improve the odds your site won't become the poster child for poorly designed Web sites.

First, he says, split your core services so they can be executed separately. For example, such things as search, login and photo uploading should be modules outside the social network app. He says in Twitter the designers integrated search with the main site, which can lead to very sluggish response times for search results.

Second, create subdomains you can direct traffic to. This can help, say, when you need to balance spikes in login traffic.

Third, Rovagnati suggests, use content delivery networks. Remember, Akamai is your friend.

Finally, cache database data. A big DB cache will greatly improve your performance, he says.

Now you're ready to launch a successful, high-traffic, sticky social network site. And if you figure out how to make money on it, let us know how you did it. We all want to believe in miracles.