Architecture of Stackoverflow

January 14, 2014

The Architecture of StackOverflow A couple of months ago, I read a comment on Hacker News about how .NET is a poor technology choice for startups for performance reasons. I disagree wholeheartedly. Not because .NET is always the best choice, but because characterizing a platform/language as a poor choice for performance without the context is non-sensical. Today, for most web based applications, performance ranks lower compared to licensing cost, talent pool, existing frameworks, etc. Bad design, cookie-cutter approach and a lack of proper architecture are more likely candidates for performance issues rather than the underlying technology. Here is a case to demonstrate it. StackOverflow is serving about 500M page views a month and they are able to do that on a grand total of dozen servers. They also happen to use .NET for all of this. How is this possible having made a “poor decision” by going with .NET? This video explains how StackOverflow was able to use .NET to create a high-performing web app. Clearly the development team members at StackOverflow think about their design/architecture quite a bit and do not follow “out of the box” patterns. Sometimes, they even use anti-patterns. But, they do all of this consciously with specific design goals in mind. They ended up writing some libraries that were a better fit for their uses rather than the mainstream ones. They even open sourced most of these libraries and shared it on GitHub. Just like the saying goes; “It’s the poor craftsman who blames his tools”. Any technology, when used properly can perform well. It’s the architect’s job to pick and apply it the right way. Next time you hear a developer/architect blame the technology for poor results, you should ask: “What have you tried to address the issue?”

comments powered by Disqus