1205210029413.jpg
Engineers love to talk about scalability.  It makes us feel like the bad ass, dick-swingin' motherfuckers that we wish we could be.

After we talk about scalability with our co-workers (Yeah, Rails doesn't scale!), we flex our true engineering prowess by writing a post about it on our blog.  Once that post hits Reddit, son, everyone will know how hardcore you really are.  Respect.

People Who Talk Big About Scalability Don't Need To Worry About It

Fact:  every chest-thumping blog post I have seen written about scalability is either about architecture, Memcached, or both.  Some asshole who writes shitty code starts pontificating about "scalable architecture" with data storage, web frontends, whatever-the-fuck.  Dude, your app isn't having scalability problems because of the architecture.  It's having scalability problems because you coded a ton of N^2 loops into it and you're too self-important to get peer reviews on your commits.

And let's not forget the tools who discover Memcached for the first time, install it on a web server, and notice how fast their app runs now.  Yeah, welcome to the modern age.  Hope you know what a cache expiry policy is.

If You Haven't Discussed Capacity Planning, You Can't Discuss Scalability

You don't need to worry about scalability on your Rails-over-Mysql application because nobody is going to use it.  Really.  Believe me.  You're going to get, at most, 1,000 people on your app, and maybe 1% of them will be 7-day active.  Scalability is not your problem, getting people to give a shit is.

Unless you know what you need to scale to, you can't even begin to talk about scalability.  How many users do you want your system to handle? A thousand?  Hundred thousand? Ten million?  Here's a hint: the system you design to handle a quarter million users is going to be different from the system you design to handle ten million users.

Of course you'll point to the engineer's wet dream: linear scalability.  Lulz but when we get more users we just add more machines you are so stupid ted. uncov sucks.

Yeah, great, well it doesn't exist.  Oh no, go ahead and try out Amazon SimpleDB and think to yourself that it will scale linearly.  Then, when you get enough users that the latency becomes a problem, blame it on "those shitty Amazon datacenters".

Choosing Technology Don't Mean Shit If You Don't Know How To Use It

The most common butthurt about scalability is this:  choose a technology.  If you like the technology, claim "technology X scales better!" If you don't like it, claim "technology X doesn't scale!"

Saying "Rails doesn't scale" is like saying "my car doesn't go infinitely fast".  Alternatively, saying "We'll have no problems scaling because we're using Django" is like saying "I will win every race because my car is the most powerful".  Maybe so, but you suck at driving, and you're up against professionals.

If you're having scalability problems and blaming it on a single technology, chances are, you're doing it wrong.

tl;dr

Shut up about scalability, no one is using your app anyway.