‘One of the social app’
Amir Fazwan & Syed Syahmi
What is Twitter?
• Twitter is an online social networking service that
enables users to send and read short 140-
character messages called "tweets".
• Registered users can read and post tweets, but
unregistered users can only read them. Users
access Twitter through the website interface,
SMS, or mobile device app.
• Twitter, it wasn't clear what it was. They called it
a social network, they called it microblogging, but
it was hard to define, because it didn't replace
History of Development
• Born 3 years ago at podcasting company, Odeo Inc. in
South Park, San Francisco. (2006)
• SMS services to tell small groups what you are doing.
• 1st version idea was web-based
– as an internal service for Odeo employees.
• Userbase was limited.
• Original name, “twttr”.
• Had admin page to see every user.
• Random person - Private account were born.
• Direct Message, verified account added later.
• Twttr.com launched to the public after some of
Odeo Inc. dissolved.
• Obvious Corp born as an incubator with Twttr.
• Messages longer than 160 were split (like SMS).
• Users may subscribe to other users' tweets – this
is known as "following" and subscribers are
known as "followers.
• In addition, users can block those who have
• Requirements of the complete system are clearly defined
• Major requirements must be defined; however, some
functionalities or requested enhancements may evolve
• There is a time to the market constraint.
• A new technology is being used and is being learnt by the
development team while working on the project.
• Resources with needed skill set are not available and are
planned to be used on contract basis for specific iterations.
• There are some high risk features and goals which may
change in the future.
Technology - Tools
Ruby on Rails
• Scale its ever-growing traffic
•Updated with latest tweets
• Speed up dynamic web app by alleviating DB loads
• Cache data & request at multiple levels
• Page caching
• Load balancing and reverse proxy Varnish
• Both runs on JVM
• Comet server (track large number of tweets) Scala & Java
• Communicate Apache Thrift between different internal services
• Primary storage of tweets
• Collaborate with the upstream
• NoSQL database
• To power services such as analytics
• Storage solution built on top of
• Store relationships (follows etc)