Twitter is a social media platform that allows users to post and read short messages called tweets. It was created in 2006 as a side project called Twttr at a podcasting company called Odeo. Over time, features like direct messaging, verified accounts, and following other users were added. Twitter uses an iterative development process and various technologies like Ruby on Rails, Memcached, Varnish, Scala, Java, MySQL, and Cassandra to handle its front-end, caching, load balancing, communication between services, primary data storage, and additional features.
1. ‘One of the social app’
Amir Fazwan & Syed Syahmi
2. 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
anything.
3. 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.
4. • 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
followed them.
6. • Requirements of the complete system are clearly defined
and understood.
• Major requirements must be defined; however, some
functionalities or requested enhancements may evolve
with time.
• 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.
8. Front Side
Ruby on Rails
Rendering
Cache
composition
DB querying
Synchronous
inserts
9. Middle Layer/Backend
• Scale its ever-growing traffic
•Updated with latest tweets
• Speed up dynamic web app by alleviating DB loads
• Cache data & request at multiple levels
Memcached
• 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
10. Storing Data
• Primary storage of tweets
• Collaborate with the upstream
community
MySQL
• NoSQL database
• To power services such as analytics
& search
Cassandra
• Storage solution built on top of
MySQL
• Store relationships (follows etc)
FlockDB