Video and slides synchronized, mp3 and slide download available at http://bit.ly/15yZeLf.
Jeremy Cloud discusses SOA at Twitter, approaches taken for maintaining high levels of concurrency, and briefly touches on some functional design patterns used to manage code complexity. Filmed at qconnewyork.com.
Jeremy Cloud is the Tech Lead of the Tweet Service team at @twitter, and oversees one of Twitter's core infrastructure services. His team is responsible for ensuring the scalability and robustness of the tweet read and write paths.
2. InfoQ.com: News & Community Site
• 750,000 unique visitors/month
• Published in 4 languages (English, Chinese, Japanese and Brazilian
Portuguese)
• Post content from our QCon conferences
• News 15-20 / week
• Articles 3-4 / week
• Presentations (videos) 12-15 / week
• Interviews 2-3 / week
• Books 1 / month
Watch the video with slide
synchronization on InfoQ.com!
http://www.infoq.com/presentations
/twitter-soa
3. Presented at QCon New York
www.qconnewyork.com
Purpose of QCon
- to empower software development by facilitating the spread of
knowledge and innovation
Strategy
- practitioner-driven conference designed for YOU: influencers of
change and innovation in your teams
- speakers and topics driving the evolution and innovation
- connecting and catalyzing the influencers and innovators
Highlights
- attended by more than 12,000 delegates since 2007
- held in 9 cities worldwide
9. Challenges
⇢storage I/O bottlenecks
⇢poor concurrency, runtime performance
⇢brittle
⇢too many cooks in the same kitchen
⇢lack of clear ownership
⇢leaky abstractions / tight-coupling
10. Goals of SOA
⇢not just a web-stack
⇢isolate responsibilities and concerns
⇢site speed
⇢reliability, isolate failures
⇢developer productivity
13. Routing Presentation Logic Storage
MySQL
Tweet Store
Flock
Redis
Memcached
Cache
TFE
Monorail
Tweet
Service
User Service
Timeline
Service
SocialGraph
Service
DirectMessa
ge Service
User Store
API
Web
Search
Feature-X
Feature-Y
HTTP THRIFT THRIFT*
42. Challenges
⇢Need to launch multiple services with change
⇢Need to point those services at each other
⇢A single service may have many dependencies (memcache,
kestrel, MySQL)
⇢Can’t run everything on one box