SlideShare a Scribd company logo
NICETONODEYOU SOCIAL
NETWORK
MONGO LAB’S SOCIAL
DATA• Built in 5/14 on Java framework
• Proven able to support 10 million users
with minimum hardware scaling
• Aimed at providing a production capsule
reusable framework for social data
management
• Also tried to demonstrate best practices for
social data modeling, indexing and
querying in MongoDB
• Demonstrated how flexible a service
architecture coupled with MongoDB
sharding can create a scalable platform for
social data
HIGH LEVEL
ARCHITECTURE
EXPLODING CAT
WHY NODE?
• Node.JS shines in real-time web applications
• Push technology over web sockets
• Quick delivery
• Easier entry point than Java
USER GRAPH SERVICE
• Manages the users of the system and
more importantly the follower graph.
• Service must allow users to be added and
removed from the system and users to
“follow” the post of others.
• Service determines which user timelines
receive the posts by any given author (the
followers of that user)
• Must be carefully designed to scale to
significant read and write loads due to the
significant churn within the graph as users
elect to follow and unfollow users
SOCIALITE USER GRAPH
SCHEMA
NICETONODEYOU USER GRAPH
SCHEMA
CONTENT SERVICE• Dedicated to storing and retrieving raw content (posts)
generated by users.
• Serves as the system of record for all posts
• Stores the full post content indexed primarily by post id
• Allows content to be added by user and allocated a unique
id
• Perform basic validation on content
• Allow content to be found by id
• Allow content to be queried by user, anchor (a content id
that represents a point in time) and returned ordered by
time
SOCIALITE CONTENT
SCHEMA
LASER CAT
Sauna
FEED SERVICE
• Receive posts from a user
• Forwards the content of the post to the Content Service
• Serves timeline feeds for all users based on the posts of
accounts they follow
FEED SERVICE
• Fanout on Read
• Fanout on Write
One major design decision for a feed service is how and when to
assemble the timeline feed for users. The implementations each
fall into the two broad categories.
THE BAD - FANOUT ON
READ
• Simple implementation - almost pass
through to the content service
• Storage efficient - only stores a single
copy of message and it’s metadata
Advantages
• Multi-shard random IO - assembling
a feed will typically require reads that
span a number of shards. These
queries will involve a lot of random IO
and often read more data than is
necessary
• No caching - if two reads of the same
user’s timeline occurs in quick
succession, the entire query must be
re-processed irrespective of whether
the result will have changed.
• Large following lists - gathering the
timeline for a use with a large follower
list will be very expensive and at some
point would require splitting into
Disadvantages
THE BAD - FANOUT ON
READ
When to use
The Fanout on Read model is typically best suited for
• Timelines are viewed far less frequently than posts are
made
• Number of users and amount of content is smaller scale
and unsharded
• Users typically follow few people
• It is very common for older sections of the timeline to be
viewed
THE GOOD - FANOUT ON
WRITE
• Faster reads - having everything
already assembled reduces
Advantages
• Duplication - there is a lot of
duplication of the original message,
especially in highly connected
networks where the average user has
a lot of followers
• More complicated - this
implementation must use a
findAndModify command rather than
an upset to detect when a new
document needs to be created
Disadvantages
QUESTIONS?

More Related Content

Viewers also liked

Guia De Informática
Guia De InformáticaGuia De Informática
Guia De Informática
Mabelita1996
 
Stem Sel_FARETE 2016
Stem Sel_FARETE 2016Stem Sel_FARETE 2016
Stem Sel_FARETE 2016
Giampaolo Pagliuca
 
MORADORES DA RUA MAQUINISTA JOÃO MENDES SOFREM PELO DESCASO E DESRESPEITO DA ...
MORADORES DA RUA MAQUINISTA JOÃO MENDES SOFREM PELO DESCASO E DESRESPEITO DA ...MORADORES DA RUA MAQUINISTA JOÃO MENDES SOFREM PELO DESCASO E DESRESPEITO DA ...
MORADORES DA RUA MAQUINISTA JOÃO MENDES SOFREM PELO DESCASO E DESRESPEITO DA ...
Antônio Fernandes
 
Newrosparks_Marco Guermandi
Newrosparks_Marco GuermandiNewrosparks_Marco Guermandi
Newrosparks_Marco Guermandi
Giampaolo Pagliuca
 
Billetera movil
Billetera movilBilletera movil
Billetera movil
Rosana Honores
 
Lecture 8 mail security
Lecture 8 mail securityLecture 8 mail security
Lecture 8 mail security
rajakhurram
 
Pgp smime
Pgp smimePgp smime
Pgp smime
Tania Agni
 

Viewers also liked (9)

Guia De Informática
Guia De InformáticaGuia De Informática
Guia De Informática
 
Stem Sel_FARETE 2016
Stem Sel_FARETE 2016Stem Sel_FARETE 2016
Stem Sel_FARETE 2016
 
MORADORES DA RUA MAQUINISTA JOÃO MENDES SOFREM PELO DESCASO E DESRESPEITO DA ...
MORADORES DA RUA MAQUINISTA JOÃO MENDES SOFREM PELO DESCASO E DESRESPEITO DA ...MORADORES DA RUA MAQUINISTA JOÃO MENDES SOFREM PELO DESCASO E DESRESPEITO DA ...
MORADORES DA RUA MAQUINISTA JOÃO MENDES SOFREM PELO DESCASO E DESRESPEITO DA ...
 
Mohamed Ismail
Mohamed IsmailMohamed Ismail
Mohamed Ismail
 
Newrosparks_Marco Guermandi
Newrosparks_Marco GuermandiNewrosparks_Marco Guermandi
Newrosparks_Marco Guermandi
 
Billetera movil
Billetera movilBilletera movil
Billetera movil
 
CV-James Klett
CV-James KlettCV-James Klett
CV-James Klett
 
Lecture 8 mail security
Lecture 8 mail securityLecture 8 mail security
Lecture 8 mail security
 
Pgp smime
Pgp smimePgp smime
Pgp smime
 

Similar to NicetoNodeYou

Microservices: The Right Way
Microservices: The Right WayMicroservices: The Right Way
Microservices: The Right Way
Daniel Woods
 
Hia 1693-effective application-development_in_iib
Hia 1693-effective application-development_in_iibHia 1693-effective application-development_in_iib
Hia 1693-effective application-development_in_iib
Andrew Coleman
 
Understanding Microservices
Understanding Microservices Understanding Microservices
Understanding Microservices
M A Hossain Tonu
 
QCon 2015 - Microservices Track Notes
QCon 2015 - Microservices Track Notes QCon 2015 - Microservices Track Notes
QCon 2015 - Microservices Track Notes
Abdul Basit Munda
 
SOA (Service Oriented Architecture)
SOA (Service Oriented Architecture)SOA (Service Oriented Architecture)
SOA (Service Oriented Architecture)Annie Comp
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
MahmoudZidan41
 
Soa 22 software as a service and soa
Soa 22 software as a service and soaSoa 22 software as a service and soa
Soa 22 software as a service and soa
Vaibhav Khanna
 
Choosing the best JavaScript framework/library/toolkit
Choosing the best JavaScript framework/library/toolkitChoosing the best JavaScript framework/library/toolkit
Choosing the best JavaScript framework/library/toolkitHristo Chakarov
 
Community application design for streaming analytics
Community application design for streaming analyticsCommunity application design for streaming analytics
Community application design for streaming analytics
Sandeep Kumar
 
Apache kafka- Onkar Kadam
Apache kafka- Onkar KadamApache kafka- Onkar Kadam
Apache kafka- Onkar Kadam
Onkar Kadam
 
Microservice Architecture Patterns, by Richard Langlois P. Eng.
Microservice Architecture Patterns, by Richard Langlois P. Eng.Microservice Architecture Patterns, by Richard Langlois P. Eng.
Microservice Architecture Patterns, by Richard Langlois P. Eng.
Richard Langlois P. Eng.
 
Socialite, the Open Source Status Feed Part 1: Design Overview and Scaling fo...
Socialite, the Open Source Status Feed Part 1: Design Overview and Scaling fo...Socialite, the Open Source Status Feed Part 1: Design Overview and Scaling fo...
Socialite, the Open Source Status Feed Part 1: Design Overview and Scaling fo...MongoDB
 
MONGODB VASUDEV PRAJAPATI DOCUMENTBASE DATABASE
MONGODB VASUDEV PRAJAPATI DOCUMENTBASE DATABASEMONGODB VASUDEV PRAJAPATI DOCUMENTBASE DATABASE
MONGODB VASUDEV PRAJAPATI DOCUMENTBASE DATABASE
vasustudy176
 
Open access Jornal
Open access JornalOpen access Jornal
Open access Jornal
krishna panchal
 
IBM InterConnect 2015 - IIB Effective Application Development
IBM InterConnect 2015 - IIB Effective Application DevelopmentIBM InterConnect 2015 - IIB Effective Application Development
IBM InterConnect 2015 - IIB Effective Application Development
Andrew Coleman
 
Microservices-101
Microservices-101Microservices-101
Microservices-101
Subhashish Bhattacharjee
 
Data warehouse and User interface
Data warehouse and User interface Data warehouse and User interface
Data warehouse and User interface
RabiaIftikhar10
 
MICROSERVICES ARCHITECTURE unit -2.pptx
MICROSERVICES ARCHITECTURE unit -2.pptxMICROSERVICES ARCHITECTURE unit -2.pptx
MICROSERVICES ARCHITECTURE unit -2.pptx
MohammedShahid562503
 
MicroserviceArchitecture in detail over Monolith.
MicroserviceArchitecture in detail over Monolith.MicroserviceArchitecture in detail over Monolith.
MicroserviceArchitecture in detail over Monolith.
PLovababu
 
introduction to web engineering.pdf
introduction to web engineering.pdfintroduction to web engineering.pdf
introduction to web engineering.pdf
NaglaaFathy42
 

Similar to NicetoNodeYou (20)

Microservices: The Right Way
Microservices: The Right WayMicroservices: The Right Way
Microservices: The Right Way
 
Hia 1693-effective application-development_in_iib
Hia 1693-effective application-development_in_iibHia 1693-effective application-development_in_iib
Hia 1693-effective application-development_in_iib
 
Understanding Microservices
Understanding Microservices Understanding Microservices
Understanding Microservices
 
QCon 2015 - Microservices Track Notes
QCon 2015 - Microservices Track Notes QCon 2015 - Microservices Track Notes
QCon 2015 - Microservices Track Notes
 
SOA (Service Oriented Architecture)
SOA (Service Oriented Architecture)SOA (Service Oriented Architecture)
SOA (Service Oriented Architecture)
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 
Soa 22 software as a service and soa
Soa 22 software as a service and soaSoa 22 software as a service and soa
Soa 22 software as a service and soa
 
Choosing the best JavaScript framework/library/toolkit
Choosing the best JavaScript framework/library/toolkitChoosing the best JavaScript framework/library/toolkit
Choosing the best JavaScript framework/library/toolkit
 
Community application design for streaming analytics
Community application design for streaming analyticsCommunity application design for streaming analytics
Community application design for streaming analytics
 
Apache kafka- Onkar Kadam
Apache kafka- Onkar KadamApache kafka- Onkar Kadam
Apache kafka- Onkar Kadam
 
Microservice Architecture Patterns, by Richard Langlois P. Eng.
Microservice Architecture Patterns, by Richard Langlois P. Eng.Microservice Architecture Patterns, by Richard Langlois P. Eng.
Microservice Architecture Patterns, by Richard Langlois P. Eng.
 
Socialite, the Open Source Status Feed Part 1: Design Overview and Scaling fo...
Socialite, the Open Source Status Feed Part 1: Design Overview and Scaling fo...Socialite, the Open Source Status Feed Part 1: Design Overview and Scaling fo...
Socialite, the Open Source Status Feed Part 1: Design Overview and Scaling fo...
 
MONGODB VASUDEV PRAJAPATI DOCUMENTBASE DATABASE
MONGODB VASUDEV PRAJAPATI DOCUMENTBASE DATABASEMONGODB VASUDEV PRAJAPATI DOCUMENTBASE DATABASE
MONGODB VASUDEV PRAJAPATI DOCUMENTBASE DATABASE
 
Open access Jornal
Open access JornalOpen access Jornal
Open access Jornal
 
IBM InterConnect 2015 - IIB Effective Application Development
IBM InterConnect 2015 - IIB Effective Application DevelopmentIBM InterConnect 2015 - IIB Effective Application Development
IBM InterConnect 2015 - IIB Effective Application Development
 
Microservices-101
Microservices-101Microservices-101
Microservices-101
 
Data warehouse and User interface
Data warehouse and User interface Data warehouse and User interface
Data warehouse and User interface
 
MICROSERVICES ARCHITECTURE unit -2.pptx
MICROSERVICES ARCHITECTURE unit -2.pptxMICROSERVICES ARCHITECTURE unit -2.pptx
MICROSERVICES ARCHITECTURE unit -2.pptx
 
MicroserviceArchitecture in detail over Monolith.
MicroserviceArchitecture in detail over Monolith.MicroserviceArchitecture in detail over Monolith.
MicroserviceArchitecture in detail over Monolith.
 
introduction to web engineering.pdf
introduction to web engineering.pdfintroduction to web engineering.pdf
introduction to web engineering.pdf
 

Recently uploaded

DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Nexer Digital
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 

Recently uploaded (20)

DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 

NicetoNodeYou

  • 2. MONGO LAB’S SOCIAL DATA• Built in 5/14 on Java framework • Proven able to support 10 million users with minimum hardware scaling • Aimed at providing a production capsule reusable framework for social data management • Also tried to demonstrate best practices for social data modeling, indexing and querying in MongoDB • Demonstrated how flexible a service architecture coupled with MongoDB sharding can create a scalable platform for social data
  • 5. WHY NODE? • Node.JS shines in real-time web applications • Push technology over web sockets • Quick delivery • Easier entry point than Java
  • 6. USER GRAPH SERVICE • Manages the users of the system and more importantly the follower graph. • Service must allow users to be added and removed from the system and users to “follow” the post of others. • Service determines which user timelines receive the posts by any given author (the followers of that user) • Must be carefully designed to scale to significant read and write loads due to the significant churn within the graph as users elect to follow and unfollow users
  • 9. CONTENT SERVICE• Dedicated to storing and retrieving raw content (posts) generated by users. • Serves as the system of record for all posts • Stores the full post content indexed primarily by post id • Allows content to be added by user and allocated a unique id • Perform basic validation on content • Allow content to be found by id • Allow content to be queried by user, anchor (a content id that represents a point in time) and returned ordered by time
  • 12. FEED SERVICE • Receive posts from a user • Forwards the content of the post to the Content Service • Serves timeline feeds for all users based on the posts of accounts they follow
  • 13. FEED SERVICE • Fanout on Read • Fanout on Write One major design decision for a feed service is how and when to assemble the timeline feed for users. The implementations each fall into the two broad categories.
  • 14. THE BAD - FANOUT ON READ • Simple implementation - almost pass through to the content service • Storage efficient - only stores a single copy of message and it’s metadata Advantages • Multi-shard random IO - assembling a feed will typically require reads that span a number of shards. These queries will involve a lot of random IO and often read more data than is necessary • No caching - if two reads of the same user’s timeline occurs in quick succession, the entire query must be re-processed irrespective of whether the result will have changed. • Large following lists - gathering the timeline for a use with a large follower list will be very expensive and at some point would require splitting into Disadvantages
  • 15. THE BAD - FANOUT ON READ When to use The Fanout on Read model is typically best suited for • Timelines are viewed far less frequently than posts are made • Number of users and amount of content is smaller scale and unsharded • Users typically follow few people • It is very common for older sections of the timeline to be viewed
  • 16. THE GOOD - FANOUT ON WRITE • Faster reads - having everything already assembled reduces Advantages • Duplication - there is a lot of duplication of the original message, especially in highly connected networks where the average user has a lot of followers • More complicated - this implementation must use a findAndModify command rather than an upset to detect when a new document needs to be created Disadvantages