| Twitter.com is probably one of the great engineering feats of todays social Internet. You tweet from your mobile phone app (maintained by twitter) or twitter.com, and that tweet gets posted on your public timeline. The tweet is parsed for mentions, and it is also copied on to the mentionee's incoming timeline and their mentions timeline. The tweet is parsed for hashtags, and active searches (i.e. ones open on twitter.com, or via the APIs) and is also copied onto those timelines. Also, you have followers. So Twitter also copies the tweet onto the inbox timeline of each of your followers. Not only is all this information published in real time on Twitter.com, but it is also made available via JSON API, Streaming API and Firehose API. All tweets (on all timelines) are stored forever. Twitter's scale is hard to fathom - all of this processing is way beyond what your Rails / Django app could process with a MySQL backend. MySQL replication wouldn'e even come close to keeping up with the sheer volume of events to be processed. To make matters more complicated - Twitter is expected to scale to meet the demand of emerging world events (eg: Egypt, Iran, snowstorms, hurricanes, earthquakes, bushfires). These events don't evenly spread traffic across Twitter's network, but instead provide "storm surges" of localised intense traffic. Oh, and Twitter haven't just launched an analytics product? I think for sheer engineering at scale, there are maybe only about half a dozen other companies in the same league. (Edit: grammer changes for readability) |
Twitter has become impressive, but let's not overstate its achievements.