SlideShare a Scribd company logo
1 of 26
Components of Social Platform Challenges Technology API Engineering Process
User Profile Relationships Activity Streams
Basic user information Extended information based on the context Player Cards Bragging rights  Points, levels Achievements, badges Activities
Friending Unidirectional (the Twitter model) Bidirectional (the Facebok model)  Association Comments Ratings, Thumbs Bookmarking/favoriting Recommendations
Who is doing what and when All about Actors, Actions, Objects and Targets Activitystrea.ms  standard vs. OpenSocial Commentable
Authentication Performance ActivityStrems Integration Flexibility Testing
People are tired of creating accounts on every site Need to support existing login method if the platform caters to an existing audience Existing auth may not work well with Open API initiatives Open API and Oauth 2 legged: Service to Service 3 legged: User to App to Service
Identify the bottlenecks  Measure everything Use CDNs for all static content Front end optimization via async loading Database optimization via indexes, sharding Caching  Scaling the sorts Scaling up vs. Scaling out CAP theorem Relational vs. NOSQL storage Read vs. Write heaviness
Query vs. Propagation Queries are read heavy Propagation is write heavy Deletion is a pain with propagation Activity Aggregation Aggregation on actor vs. object Normalized vs. Denormalized storage Comments Decorating the activities on each request
Integration with legacy touchpoints Opening up the API More channels like Mobile More independent applications Rate limiting and access control Don’t forget existing data Data outlives code
Flexibility in the code to adapt changing requirements quickly and seamlessly Good design DRY SOCs Flexibility in the infrastructure to adapt changing traffic and behavior Virtualization Heavy replication Flexibility in the team to respond to changes Process
Automated Testing wherever possible Developer Focus on test coverage (80+%) Continuous Integration and Deployment Cucumber + Hudson Cross browser testing (yes, including IE)
Java services Tomcat with Shindig 1.1, 4 nodes REST/JSON Ruby  Rails Admin App for moderation and points/levels Migration Scripts Twitter bot for routing #myign tweets to the platform Misc. scripts to invalidate memache keys and test service endpoints
Memcached Extremely trivial to set up and maintain Almost never dies Massive scale out Careful with Cache hotspots Concurrent writes On the fly scale-out Key/Value size limits
MySQL Proven, cheap to develop and operate Maslow’s hammer Easy scale out Hard to store (and retrieve) network graphs Write scaling with single master Not the best choice for activitystreams Schema changes lock the table(s)
Awesome write scaling Great for activity propagation model In place updates Using $push and $set Excellent for storing social relationships as documents Very easy to cluster We are running replica pairs, plan to move to replica sets Schema-less No need to run alter scripts on 18M-row table
Queryable Rich Query language ($in, $size, $exists, $slice) MapReduce for heavy data crunching Supports Indexing You can even index collections inside a document Storage  ~4x storage compared to relational data Emerging technology Index defragmentation  $or and indexing (to be supported in 1.7) Load balancing support in the driver (coming soon)
RabbitMQ for messaging Ease of clustering Written in Erlang for high performance and availability Used for Propagation of activities Sending out email alerts Indexing data in Solr
Person GET @self, @friends, @followers, @all, PUT/POST @self, @friends Activities GET @global, @self, @friends, POST @self  MediaItems GET @self, @all and POST @self AppData For applications to store/retrieve data as key-value pairs GET/POST @self Status  GET @friends, @self, @followers , POST @self
Must have for any Java/Ruby webapp Monitoring and troubleshooting Save a ton of $ and time by efficient root cause analysis tools Agents for Ruby and Java IGN Engineers helped write PHP and Memcached agents
Social Applications and community Check the pulse of the community UserVoice (http://ign.uservoice.com) Less is more Distinguish yourself and focus on your niche Be Agile - Release early, release often Do not shock your audience Announce the changes/features on a blog Eat your own dog food http://people.ign.com/ign-labs
Released July 2010 as beta Daily API requests ~25M Daily page views ~30K Daily Uniques ~12K 6ms response times Expected traffic 8-10x with more integration and mobile platform
Manish Pandit Engineering Manager, Social Platform at IGN Email: pandit.manish-at-gmail.com Twitter: @lobster1234 LinkedIn: http://www.linkedin.com/in/mpandit Blog: http://contrarianwisdom.blogspot.com MyIGN: http://people.ign.com/mpanditign
http://corp.ign.com http://labs.ign.com http://my.ign.com http://people.ign.com/ign-labs

More Related Content

What's hot

Simseer - A Software Similarity Web Service
Simseer - A Software Similarity Web ServiceSimseer - A Software Similarity Web Service
Simseer - A Software Similarity Web Service
Silvio Cesare
 
Career Pathing
Career PathingCareer Pathing
Career Pathing
HRIntranet
 

What's hot (17)

Simseer - A Software Similarity Web Service
Simseer - A Software Similarity Web ServiceSimseer - A Software Similarity Web Service
Simseer - A Software Similarity Web Service
 
Meghana_Resume_FullTime_May_2016
Meghana_Resume_FullTime_May_2016Meghana_Resume_FullTime_May_2016
Meghana_Resume_FullTime_May_2016
 
Webinar: Building Customer-Targeted Search with Fusion
Webinar: Building Customer-Targeted Search with FusionWebinar: Building Customer-Targeted Search with Fusion
Webinar: Building Customer-Targeted Search with Fusion
 
Webinar: Fusion 3.1 - What's New
Webinar: Fusion 3.1 - What's NewWebinar: Fusion 3.1 - What's New
Webinar: Fusion 3.1 - What's New
 
Webinar: Personalized Retail Search & Recommendations with Fusion
Webinar: Personalized Retail Search & Recommendations with FusionWebinar: Personalized Retail Search & Recommendations with Fusion
Webinar: Personalized Retail Search & Recommendations with Fusion
 
Measure your teams sentiment
Measure your teams sentimentMeasure your teams sentiment
Measure your teams sentiment
 
Webinar: Building Conversational Search with Fusion
Webinar: Building Conversational Search with FusionWebinar: Building Conversational Search with Fusion
Webinar: Building Conversational Search with Fusion
 
Mayank Wadhawan RESUME
Mayank Wadhawan RESUMEMayank Wadhawan RESUME
Mayank Wadhawan RESUME
 
SagarKamat
SagarKamatSagarKamat
SagarKamat
 
Ml ops deployment choices
Ml ops   deployment choicesMl ops   deployment choices
Ml ops deployment choices
 
Resume-Pavana-Venkataswamy
Resume-Pavana-VenkataswamyResume-Pavana-Venkataswamy
Resume-Pavana-Venkataswamy
 
Mythbusters
MythbustersMythbusters
Mythbusters
 
Webinar: Site Search in an Hour with Fusion
Webinar: Site Search in an Hour with FusionWebinar: Site Search in an Hour with Fusion
Webinar: Site Search in an Hour with Fusion
 
Harnessing the Crowds for Automating the Identification of Web APIs
Harnessing the Crowds for Automating the Identification of Web APIsHarnessing the Crowds for Automating the Identification of Web APIs
Harnessing the Crowds for Automating the Identification of Web APIs
 
Career Pathing
Career PathingCareer Pathing
Career Pathing
 
DataEngConf SF16 - Three lessons learned from building a production machine l...
DataEngConf SF16 - Three lessons learned from building a production machine l...DataEngConf SF16 - Three lessons learned from building a production machine l...
DataEngConf SF16 - Three lessons learned from building a production machine l...
 
Getting Started With the TFS Object Model
Getting Started With the TFS Object ModelGetting Started With the TFS Object Model
Getting Started With the TFS Object Model
 

Viewers also liked

Ενδεικτική πρόταση για τη Φυσικη β ΕΠΑΛ για το διάστημα Φεβρουάριος- Μαϊος
Ενδεικτική πρόταση για τη Φυσικη β ΕΠΑΛ για το διάστημα Φεβρουάριος- ΜαϊοςΕνδεικτική πρόταση για τη Φυσικη β ΕΠΑΛ για το διάστημα Φεβρουάριος- Μαϊος
Ενδεικτική πρόταση για τη Φυσικη β ΕΠΑΛ για το διάστημα Φεβρουάριος- Μαϊος
Christos Gotzaridis
 
Mole η μονάδα χημικής ποσότητας
Mole η μονάδα χημικής ποσότηταςMole η μονάδα χημικής ποσότητας
Mole η μονάδα χημικής ποσότητας
Christos Gotzaridis
 
socials
socialssocials
socials
aiiida
 
Tet Poweroint
Tet PowerointTet Poweroint
Tet Poweroint
Amber08
 
Introduction To Tcf
Introduction To TcfIntroduction To Tcf
Introduction To Tcf
guestf23716
 
20130904 splash maps
20130904 splash maps20130904 splash maps
20130904 splash maps
dbyhundred
 
Dossier robotica Albert Claveria
Dossier robotica Albert ClaveriaDossier robotica Albert Claveria
Dossier robotica Albert Claveria
albert
 
Powerpoint Activity
Powerpoint ActivityPowerpoint Activity
Powerpoint Activity
cchannasch
 
Whatisa Trillion
Whatisa TrillionWhatisa Trillion
Whatisa Trillion
guest276365
 
20120512 php カンファレンス関西 2012
20120512 php カンファレンス関西 201220120512 php カンファレンス関西 2012
20120512 php カンファレンス関西 2012
Kaz Watanabe
 

Viewers also liked (20)

Ενδεικτική πρόταση για τη Φυσικη β ΕΠΑΛ για το διάστημα Φεβρουάριος- Μαϊος
Ενδεικτική πρόταση για τη Φυσικη β ΕΠΑΛ για το διάστημα Φεβρουάριος- ΜαϊοςΕνδεικτική πρόταση για τη Φυσικη β ΕΠΑΛ για το διάστημα Φεβρουάριος- Μαϊος
Ενδεικτική πρόταση για τη Φυσικη β ΕΠΑΛ για το διάστημα Φεβρουάριος- Μαϊος
 
Future Agenda Future Of Food
Future Agenda   Future Of FoodFuture Agenda   Future Of Food
Future Agenda Future Of Food
 
Mole η μονάδα χημικής ποσότητας
Mole η μονάδα χημικής ποσότηταςMole η μονάδα χημικής ποσότητας
Mole η μονάδα χημικής ποσότητας
 
C Level Client Presentation
C Level Client PresentationC Level Client Presentation
C Level Client Presentation
 
Acacia Research and Learning Forum Tutorial 2
Acacia Research and Learning Forum Tutorial 2Acacia Research and Learning Forum Tutorial 2
Acacia Research and Learning Forum Tutorial 2
 
Future Agenda Future Of Work
Future Agenda   Future Of WorkFuture Agenda   Future Of Work
Future Agenda Future Of Work
 
Higher Ground Constructors
Higher Ground ConstructorsHigher Ground Constructors
Higher Ground Constructors
 
Material Girl Magazine
Material Girl MagazineMaterial Girl Magazine
Material Girl Magazine
 
E newsletter
E newsletterE newsletter
E newsletter
 
20131111 slides for crowd funding
20131111 slides for crowd funding20131111 slides for crowd funding
20131111 slides for crowd funding
 
socials
socialssocials
socials
 
Tet Poweroint
Tet PowerointTet Poweroint
Tet Poweroint
 
Introduction To Tcf
Introduction To TcfIntroduction To Tcf
Introduction To Tcf
 
Bahia Grande Detached House - Mallorca
Bahia Grande Detached House - MallorcaBahia Grande Detached House - Mallorca
Bahia Grande Detached House - Mallorca
 
20130904 splash maps
20130904 splash maps20130904 splash maps
20130904 splash maps
 
Dossier robotica Albert Claveria
Dossier robotica Albert ClaveriaDossier robotica Albert Claveria
Dossier robotica Albert Claveria
 
Powerpoint Activity
Powerpoint ActivityPowerpoint Activity
Powerpoint Activity
 
Whatisa Trillion
Whatisa TrillionWhatisa Trillion
Whatisa Trillion
 
20120512 php カンファレンス関西 2012
20120512 php カンファレンス関西 201220120512 php カンファレンス関西 2012
20120512 php カンファレンス関西 2012
 
ΕΚΦΕ Παρουσιαση της ιδεας του πακετου εργαστηριακων ασκησεων
ΕΚΦΕ Παρουσιαση της ιδεας του πακετου εργαστηριακων ασκησεωνΕΚΦΕ Παρουσιαση της ιδεας του πακετου εργαστηριακων ασκησεων
ΕΚΦΕ Παρουσιαση της ιδεας του πακετου εργαστηριακων ασκησεων
 

Similar to Silicon Valley Code Camp 2010: Social Platforms : What goes on under the hood

Venkata Sateesh_BigData_Latest-Resume
Venkata Sateesh_BigData_Latest-ResumeVenkata Sateesh_BigData_Latest-Resume
Venkata Sateesh_BigData_Latest-Resume
venkata sateeshs
 
Python + MPP Database = Large Scale AI/ML Projects in Production Faster
Python + MPP Database = Large Scale AI/ML Projects in Production FasterPython + MPP Database = Large Scale AI/ML Projects in Production Faster
Python + MPP Database = Large Scale AI/ML Projects in Production Faster
Paige_Roberts
 
Sfeldman performance bb_worldemea07
Sfeldman performance bb_worldemea07Sfeldman performance bb_worldemea07
Sfeldman performance bb_worldemea07
Steve Feldman
 
Nagarjuna Reddy_Java (1+ Experience)
Nagarjuna Reddy_Java (1+ Experience)Nagarjuna Reddy_Java (1+ Experience)
Nagarjuna Reddy_Java (1+ Experience)
Nagarjun Reddy
 
Short reference architecture
Short reference architectureShort reference architecture
Short reference architecture
Steve Feldman
 
oct-2016-Prem-ProfessionalProfile
oct-2016-Prem-ProfessionalProfileoct-2016-Prem-ProfessionalProfile
oct-2016-Prem-ProfessionalProfile
Prem Bist
 

Similar to Silicon Valley Code Camp 2010: Social Platforms : What goes on under the hood (20)

RamaRaju
RamaRajuRamaRaju
RamaRaju
 
Shruti Kulkarni (1)
Shruti Kulkarni (1)Shruti Kulkarni (1)
Shruti Kulkarni (1)
 
Venkata Sateesh_BigData_Latest-Resume
Venkata Sateesh_BigData_Latest-ResumeVenkata Sateesh_BigData_Latest-Resume
Venkata Sateesh_BigData_Latest-Resume
 
Python + MPP Database = Large Scale AI/ML Projects in Production Faster
Python + MPP Database = Large Scale AI/ML Projects in Production FasterPython + MPP Database = Large Scale AI/ML Projects in Production Faster
Python + MPP Database = Large Scale AI/ML Projects in Production Faster
 
Resume
ResumeResume
Resume
 
Saloni_Tyagi
Saloni_TyagiSaloni_Tyagi
Saloni_Tyagi
 
The Magic Of Application Lifecycle Management In Vs Public
The Magic Of Application Lifecycle Management In Vs PublicThe Magic Of Application Lifecycle Management In Vs Public
The Magic Of Application Lifecycle Management In Vs Public
 
SelvaResume
SelvaResumeSelvaResume
SelvaResume
 
Modern Application Development v1-0
Modern Application Development  v1-0Modern Application Development  v1-0
Modern Application Development v1-0
 
Handling Data in Mega Scale Systems
Handling Data in Mega Scale SystemsHandling Data in Mega Scale Systems
Handling Data in Mega Scale Systems
 
Rajesh Ramasamy
Rajesh RamasamyRajesh Ramasamy
Rajesh Ramasamy
 
ABHAY_SHUKLA
ABHAY_SHUKLAABHAY_SHUKLA
ABHAY_SHUKLA
 
Sfeldman performance bb_worldemea07
Sfeldman performance bb_worldemea07Sfeldman performance bb_worldemea07
Sfeldman performance bb_worldemea07
 
Nagarjuna Reddy_Java (1+ Experience)
Nagarjuna Reddy_Java (1+ Experience)Nagarjuna Reddy_Java (1+ Experience)
Nagarjuna Reddy_Java (1+ Experience)
 
Rajeev_Resume
Rajeev_ResumeRajeev_Resume
Rajeev_Resume
 
Short reference architecture
Short reference architectureShort reference architecture
Short reference architecture
 
SelvaResume
SelvaResumeSelvaResume
SelvaResume
 
Architecting an Open Source AI Platform 2018 edition
Architecting an Open Source AI Platform   2018 editionArchitecting an Open Source AI Platform   2018 edition
Architecting an Open Source AI Platform 2018 edition
 
Apache phoenix
Apache phoenixApache phoenix
Apache phoenix
 
oct-2016-Prem-ProfessionalProfile
oct-2016-Prem-ProfessionalProfileoct-2016-Prem-ProfessionalProfile
oct-2016-Prem-ProfessionalProfile
 

More from Manish Pandit

OSCON 2014 - API Ecosystem with Scala, Scalatra, and Swagger at Netflix
OSCON 2014 - API Ecosystem with Scala, Scalatra, and Swagger at NetflixOSCON 2014 - API Ecosystem with Scala, Scalatra, and Swagger at Netflix
OSCON 2014 - API Ecosystem with Scala, Scalatra, and Swagger at Netflix
Manish Pandit
 

More from Manish Pandit (20)

Disaster recovery - What, Why, and How
Disaster recovery - What, Why, and HowDisaster recovery - What, Why, and How
Disaster recovery - What, Why, and How
 
Serverless Architectures on AWS in practice - OSCON 2018
Serverless Architectures on AWS in practice - OSCON 2018Serverless Architectures on AWS in practice - OSCON 2018
Serverless Architectures on AWS in practice - OSCON 2018
 
Disaster Recovery and Reliability
Disaster Recovery and ReliabilityDisaster Recovery and Reliability
Disaster Recovery and Reliability
 
OAuth2 primer
OAuth2 primerOAuth2 primer
OAuth2 primer
 
Immutable AWS Deployments with Packer and Jenkins
Immutable AWS Deployments with Packer and JenkinsImmutable AWS Deployments with Packer and Jenkins
Immutable AWS Deployments with Packer and Jenkins
 
AWS Lambda with Serverless Framework and Java
AWS Lambda with Serverless Framework and JavaAWS Lambda with Serverless Framework and Java
AWS Lambda with Serverless Framework and Java
 
AWS Primer and Quickstart
AWS Primer and QuickstartAWS Primer and Quickstart
AWS Primer and Quickstart
 
Securing your APIs with OAuth, OpenID, and OpenID Connect
Securing your APIs with OAuth, OpenID, and OpenID ConnectSecuring your APIs with OAuth, OpenID, and OpenID Connect
Securing your APIs with OAuth, OpenID, and OpenID Connect
 
Silicon Valley 2014 - API Antipatterns
Silicon Valley 2014 - API AntipatternsSilicon Valley 2014 - API Antipatterns
Silicon Valley 2014 - API Antipatterns
 
Scalabay - API Design Antipatterns
Scalabay - API Design AntipatternsScalabay - API Design Antipatterns
Scalabay - API Design Antipatterns
 
OSCON 2014 - API Ecosystem with Scala, Scalatra, and Swagger at Netflix
OSCON 2014 - API Ecosystem with Scala, Scalatra, and Swagger at NetflixOSCON 2014 - API Ecosystem with Scala, Scalatra, and Swagger at Netflix
OSCON 2014 - API Ecosystem with Scala, Scalatra, and Swagger at Netflix
 
API Design Antipatterns - APICon SF
API Design Antipatterns - APICon SFAPI Design Antipatterns - APICon SF
API Design Antipatterns - APICon SF
 
Motivation : it Matters
Motivation : it MattersMotivation : it Matters
Motivation : it Matters
 
Building Apis in Scala with Playframework2
Building Apis in Scala with Playframework2Building Apis in Scala with Playframework2
Building Apis in Scala with Playframework2
 
Scala at Netflix
Scala at NetflixScala at Netflix
Scala at Netflix
 
Introducing Scala to your Ruby/Java Shop : My experiences at IGN
Introducing Scala to your Ruby/Java Shop : My experiences at IGNIntroducing Scala to your Ruby/Java Shop : My experiences at IGN
Introducing Scala to your Ruby/Java Shop : My experiences at IGN
 
Evolving IGN’s New APIs with Scala
 Evolving IGN’s New APIs with Scala Evolving IGN’s New APIs with Scala
Evolving IGN’s New APIs with Scala
 
IGN's V3 API
IGN's V3 APIIGN's V3 API
IGN's V3 API
 
Java and the JVM
Java and the JVMJava and the JVM
Java and the JVM
 
Object Oriented Programming
Object Oriented ProgrammingObject Oriented Programming
Object Oriented Programming
 

Recently uploaded

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 

Recently uploaded (20)

Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 

Silicon Valley Code Camp 2010: Social Platforms : What goes on under the hood

  • 1.
  • 2. Components of Social Platform Challenges Technology API Engineering Process
  • 3. User Profile Relationships Activity Streams
  • 4. Basic user information Extended information based on the context Player Cards Bragging rights Points, levels Achievements, badges Activities
  • 5. Friending Unidirectional (the Twitter model) Bidirectional (the Facebok model) Association Comments Ratings, Thumbs Bookmarking/favoriting Recommendations
  • 6. Who is doing what and when All about Actors, Actions, Objects and Targets Activitystrea.ms standard vs. OpenSocial Commentable
  • 7. Authentication Performance ActivityStrems Integration Flexibility Testing
  • 8. People are tired of creating accounts on every site Need to support existing login method if the platform caters to an existing audience Existing auth may not work well with Open API initiatives Open API and Oauth 2 legged: Service to Service 3 legged: User to App to Service
  • 9. Identify the bottlenecks Measure everything Use CDNs for all static content Front end optimization via async loading Database optimization via indexes, sharding Caching Scaling the sorts Scaling up vs. Scaling out CAP theorem Relational vs. NOSQL storage Read vs. Write heaviness
  • 10. Query vs. Propagation Queries are read heavy Propagation is write heavy Deletion is a pain with propagation Activity Aggregation Aggregation on actor vs. object Normalized vs. Denormalized storage Comments Decorating the activities on each request
  • 11. Integration with legacy touchpoints Opening up the API More channels like Mobile More independent applications Rate limiting and access control Don’t forget existing data Data outlives code
  • 12. Flexibility in the code to adapt changing requirements quickly and seamlessly Good design DRY SOCs Flexibility in the infrastructure to adapt changing traffic and behavior Virtualization Heavy replication Flexibility in the team to respond to changes Process
  • 13. Automated Testing wherever possible Developer Focus on test coverage (80+%) Continuous Integration and Deployment Cucumber + Hudson Cross browser testing (yes, including IE)
  • 14.
  • 15. Java services Tomcat with Shindig 1.1, 4 nodes REST/JSON Ruby Rails Admin App for moderation and points/levels Migration Scripts Twitter bot for routing #myign tweets to the platform Misc. scripts to invalidate memache keys and test service endpoints
  • 16. Memcached Extremely trivial to set up and maintain Almost never dies Massive scale out Careful with Cache hotspots Concurrent writes On the fly scale-out Key/Value size limits
  • 17. MySQL Proven, cheap to develop and operate Maslow’s hammer Easy scale out Hard to store (and retrieve) network graphs Write scaling with single master Not the best choice for activitystreams Schema changes lock the table(s)
  • 18. Awesome write scaling Great for activity propagation model In place updates Using $push and $set Excellent for storing social relationships as documents Very easy to cluster We are running replica pairs, plan to move to replica sets Schema-less No need to run alter scripts on 18M-row table
  • 19. Queryable Rich Query language ($in, $size, $exists, $slice) MapReduce for heavy data crunching Supports Indexing You can even index collections inside a document Storage ~4x storage compared to relational data Emerging technology Index defragmentation $or and indexing (to be supported in 1.7) Load balancing support in the driver (coming soon)
  • 20. RabbitMQ for messaging Ease of clustering Written in Erlang for high performance and availability Used for Propagation of activities Sending out email alerts Indexing data in Solr
  • 21. Person GET @self, @friends, @followers, @all, PUT/POST @self, @friends Activities GET @global, @self, @friends, POST @self MediaItems GET @self, @all and POST @self AppData For applications to store/retrieve data as key-value pairs GET/POST @self Status GET @friends, @self, @followers , POST @self
  • 22. Must have for any Java/Ruby webapp Monitoring and troubleshooting Save a ton of $ and time by efficient root cause analysis tools Agents for Ruby and Java IGN Engineers helped write PHP and Memcached agents
  • 23. Social Applications and community Check the pulse of the community UserVoice (http://ign.uservoice.com) Less is more Distinguish yourself and focus on your niche Be Agile - Release early, release often Do not shock your audience Announce the changes/features on a blog Eat your own dog food http://people.ign.com/ign-labs
  • 24. Released July 2010 as beta Daily API requests ~25M Daily page views ~30K Daily Uniques ~12K 6ms response times Expected traffic 8-10x with more integration and mobile platform
  • 25. Manish Pandit Engineering Manager, Social Platform at IGN Email: pandit.manish-at-gmail.com Twitter: @lobster1234 LinkedIn: http://www.linkedin.com/in/mpandit Blog: http://contrarianwisdom.blogspot.com MyIGN: http://people.ign.com/mpanditign