5 ms·
India's SMS GupShup Has 3x The Usage Of Twitter And No Downtime
- noor420 18y agoMan Indians are getting better at Web Apps too. Good read.
- babul 18y agoThey spent a lot of time building them for others (outsourcing) and now are builing it for themselves (entreprenuering/producing). The same model as the far east with cheap manufacturing of electronics goods in the previous decades. After a while of outsourced cheap production/manufacturing, these players learnt about the markets/products and how to actually design and build themselves and now many of them are major manufacturers and producers in thier own right.
- babul 18y agoPlus web apps will soon be big business in India as it allows them to compete in international markets with stronger currencies (i.e. USD/GBP is greater then Indian Rupee) without the associated export/manufacturing costs, and the benefit of their own homes/area/country. Hence instead of working for $10k~20k (USD) on average in a multinational/call-centre, they will form tech/consulting startups. This is already been demonstrated in the macro-scale with names like InfoSys/TCS/MindTree/HCL and now will happen in the micro-scale too, especially after media coverage of people like the Scrabulous founders etc (who many media sources claim earn about $20k~$30k a month in just facebook advertising). Only a matter of time till we see a web superhit from India, imho.
- kashif 18y agoDude, I am an Indian and this isnt much of a web app. Its a SMS gateway with a few tweaks.
- axod 18y agoI wonder if those techcrunch Twitter stats are up to date or accurate. 3 million messages a day is really nothing in terms of scaling issues. 34 messages a second. Although it also depends how many destinations each of those messages has.
- ojbyrne 18y agoSure, if messages were evenly distributed over the day. I think it's the bursty nature of the traffic that causes the scaling issues. A better estimate would probably assume that half that daily traffic is within 1 hour - i.e. 1.5 million/(60*60) = 417 messages/second.
- paul 18y agoIt depends how you count. If I send a tweet to 100 followers, is that 100 messages, or one? 3 million is low if the former, and high if the latter. I think Twitter does closer to 1M unique tweets per day.
- einarvollset 18y agoSuch an utter lack of understanding of Twitter's service model I've rarely seen. Message delivery was never Twitter's problem; dealing with persistance (I want my messages when I'm good and ready thanks, not when the system wants to push them to me - READ: LIKE SMS MULTICAST!) is. Christ. Downvote me all you like, but I'm embarrassed this story made 21 points.
- jrockway 18y agoThat's what Twitter is, true, but it's not necessarily what users want. I'm sure if the Indian service was one day called "Twitter", people would keep using "Twitter".
- axod 18y agostoring messages isn't really a hard problem either though.
- gaius 18y agoMaintaining consistent state across a distributed system is a hard problem. Maybe Twitter are solving the wrong problem, that's for their investors to judge, but the problem they have decided to solve is a difficult one.
- axod 18y agoWhy does it need to be distributed? ok, ok... I give in. It's a devilishly hard problem at the cutting edge of science.
- tx 18y agoAxod, you're absolutely right, I am amazed that your voice is drawning in this river of absurd. Twitter IS a freaking reimplementation of SMS, a not-too-hard problem that has been solved many many many times before (on a much weaker hardware). Most folks here just don't get it. Perhaps it's because texting has never been really big in US like it has always been in Europe. Moreover, Twitter's load is a joke compared to what leading telecoms have been dealing with for many years. If there were serious about recruiting they could have hired someone with experience to do just that. Without this typical "distributed everything" mantra. Twitter isn't freaking Google or Amazon, they have ZERO computational complexity, they simply move (and store) up to 400 bytes of data for _not even a million_ of active daily users, how hard could it be? I suspect the reason we see such embarassing technical failures is because software engineering these days is less about engineering and more about playing Lego with pre-existing open source parts, even if they don't fit together or even don't fit at all.
- gaius 18y agoI laugh when people talk about "sharding". In what way is storing your users in different databases by username any better than calling your disk drives by letter? The major database vendors all tried shared-nothing, and most have rejected it in favour of single images (using partitioning to arrange the data in a form suitable for parallel queries)
- st3fan 18y ago"""In what way is storing your users in different databases by username any better than calling your disk drives by letter?""" Probably the fact that those drives are local while sharded databases are physically seperate (clusters) of independent machines? Some apps totally suck at this model. Others are perfectly suited. I doubt Twitter needs complex joins, so it should be easy to partition their data. S.
- ashleyw 18y agoYou've gotta remember, Twitter is in a very sticky situation at the moment! One one hand, they know their architecture isn't perfect and will be rebuilding it to cope with more users. But on the other hand - they are a small team which is trying to keep it up in its current state, and cant just decide to close Twitter for a few weeks/months while they work on the new architecture, people will defiantly move to another service, and Twitter is dead.
- avner 18y agoIt works..because the Indian cellphone companies don't cheat you into paying a fee for RECEIVING sms or calls.
- plinkplonk 18y agoyou have to pay for receiving calls/sms in the USA? wow !!! Fwiw, here in India, in the initial days of cell phone adoption, some phone cell service providers tried providing plans with "receiving charges", but no one used those plans so they (mostly) faded away. I assumed something like that happened in the United States as well. Another interesting phenomenon here is that (most) cell phones are not locked to a particular vendor. The cell phone manufacturers (Nokia , Samsung et al) compete (fiercely) on phones (almost every week a new phone launches) and the service providers (Airtel, Vodaphone et al) compete on service (bazillion plans with different mixes of features. You can shift a plan to another one i a few hours by sending a free sms to the service provider) You get a sim card from the carrier you subscribe to and buy a phone from wherever you want, insert the card and you are good to go. You can change or upgrade the phone and/or service provider independently of each other.
- dcurtis 18y agoWhat you are describing is the power of the open market; it's what happens when you don't have an oligopoly like we have here in the US.
- st3fan 18y ago"""It appears that the biggest difference between Twitter and GupShup is 3-tier versus 2-tier. RoR is fantastic for turning out applications quickly, but the way Rails works, the out-of-the-box approach leads to a two-tier architecture (webserver talking directly to database). We all learned back in the 90's that this is an unscalable model, yet it is the model for most Rails applications.""" I remember having a discussion with DHH about RoR on IRC a long time ago. Probably somwhere in 2004 when RoR was still very young and not so much known. Coming from a Java/Spring/J2EE background I asked him about abstracting database access in a third tier. He said he had never heard of that and did not know and understand why people were doing that.
- lpgauth 18y ago"He said he had never heard of that and did not know and understand why people were doing that." Could you explain the advantage of having a middle man between the server and db? Does the middle man caches the requests? From what I can read up it seems too be just a logical layer that executes the request depending on some rules...
- gaius 18y agoLet's say you have a 10,000 logged-in users on your website, of which 1000 are concurrently active. That's very difficult to do with a RDBMS, because (most) RDBMSs do a lot of work to start a session, and maintain an awful lot of session state (for example, Oracle pre-allocates a chunk of memory private to each session to do sorting in). So you put something in the middle, that multiplexes those sessions down into say 100 session on the database, checking connections in and out of a pool as necessary, queueing requests asynchronously if there are no free connections in the pool. You avoid the expensive creation/destruction of database sessions, as you start the sessions when the middle tier starts and keep them, and you keep the session state the database has to maintain at an optimal level. Cleverer architectures add effectively another layer between the middle tier and the database to cache query results (because you the developer can know what data you can cache like that, but the database can only make a best guess). In "sharding" I suppose the middle tier also has to do some logic to figure out which "shard" to direct the query to. Note that this logic must be done, whether you do it yourself in your code, or you let Oracle do it for you in the query optimizer, picking the right partition(s) to actually execute the SQL on.
- KirinDave 18y agoWhy do people think Twitter's problems are due to a lack of good technical design? Twitter's real problem is that they've had a pittance of hardware until very recently. It's not my place to go into why this is (and I'm sure the version of the story I know is a bit biased by the teller), but suffice it to say that a lot of Twitter's problems were, until recently, more business-oriented that technology oriented.
- xlnt 18y agoTwitter has a better name.
- raghus 18y agoGupShup is slang in Hindi for chit-chat or gossip
- ismail 18y ago@tx claiming that SMS has persistence is wrong, once the SMS is delivered to the customer, and the buffer fills up on the SMSC oldest messages are cleared, a record is written to a file which is then transfered to some other server (That deals with the persistence) so SMS as it stands now is not persistent, since one App handles the messaging and another handles the persistence.
- abijlani 18y agoI think this post made by the Twitter team pretty much sums up their woes. (http://dev.twitter.com/2008/05/twittering-about-architecture.html http://dev.twitter.com/2008/05/twittering-about-architecture...) "Twitter is, fundamentally, a messaging system. Twitter was not architected as a messaging system, however. For expediency's sake, Twitter was built with technologies and practices that are more appropriate to a content management system."