SlideShare a Scribd company logo
2
Most read
7
Most read
8
Most read
Methodology for Reddit/Quora
1. 5 Step Process
1.1. Use cases, assumptions, constraints
1.2. Back of envelope calculations
1.3. Design core components
1.4. High level design
1.5. Scale the design
Reddit/Quora
Step 1a: Use Cases
● Functional requirements (use cases)
○ Users posts a topic
○ User reacts to a topic (comment, like)
○ Notification service when a reaction is on a topic
○ User search a topic
● Nonfunctional requirements
○ High availability
Reddit/Quora
Step 1b: Constraints, Assumptions
● Uneven traffic
● 10 million users/daily
● 100,000 topics
● 33% of users reacts daily
○ 3:1 read-write
Reddit/Quora
Step 2a: Back of envelope calculations
● Database design
○ Users
■ Id
■ Name
■ Topics_associated
○ Topics
■ Id
■ Topic_name
■ Created_at
■ Participants_progress (object with users_id and timestamps)
○ Reactions
■ Id
■ Reaction_type
■ Content
■ Topic_id
■ User_id
■ Created_at
Reddit/Quora
Step 2b: Back of envelope calculations
● Daily traffic
○ 10 million users/daily
○ 100,000 reactions/sec
○ 33% of users reacts daily
■ 3:1 read-write
● Storage
○ Tables of Users (~50 bytes), Topics (~100 bytes), Reactions
(~350 bytes)
■ ~500 bytes * 100,000 reactions/sec
● 50 MB/s
Reddit/Quora
Step 3: Design core components
● Use case #1: User create a topic
○ Server, Write API, database
● Use case #2: Users react to a topic
○ Server, Write API, Read API, database, object store
● Use case #3: Notification service
○ Server, Write API, database, notification service
● Use case #4: Users search for a topic
○ Server, database, Search API, search service
Reddit/Quora
Step 4: High Level Design
Reddit/Quora
Step 5: Scale the Design
● High availability
○ Add load balancers, DB shards, caches, DNS

More Related Content

PPTX
Cloud Application architecture styles
PDF
Scalability, Availability & Stability Patterns
PPTX
Introduction to Apache ZooKeeper
PDF
Introduction to Redis
PPT
Chapter 10
PPTX
DNS Security Presentation ISSA
PDF
CQRS and Event Sourcing in Action
Cloud Application architecture styles
Scalability, Availability & Stability Patterns
Introduction to Apache ZooKeeper
Introduction to Redis
Chapter 10
DNS Security Presentation ISSA
CQRS and Event Sourcing in Action

What's hot (20)

PPT
Distributed Systems
PDF
Security in CI/CD Pipelines: Tips for DevOps Engineers
PPTX
System hardening - OS and Application
PPTX
Stability Patterns for Microservices
PDF
ATT&CKING Containers in The Cloud
PDF
The Parquet Format and Performance Optimization Opportunities
PPTX
System dependability
PDF
Distributed storage system
PPTX
Flink vs. Spark
PPT
Resource provisioning optimization in cloud computing
PDF
IPS (intrusion prevention system)
PPTX
Distributed DBMS - Unit 9 - Distributed Deadlock & Recovery
PPTX
Storage As A Service (StAAS)
PPTX
What Is DevOps?
PDF
Lecture 1 introduction to parallel and distributed computing
PDF
Network DDoS Incident Response Cheat Sheet (by SANS)
PDF
A Thorough Comparison of Delta Lake, Iceberg and Hudi
PPTX
From cache to in-memory data grid. Introduction to Hazelcast.
PDF
PPTX
OWASP Top 10 2021 Presentation (Jul 2022)
Distributed Systems
Security in CI/CD Pipelines: Tips for DevOps Engineers
System hardening - OS and Application
Stability Patterns for Microservices
ATT&CKING Containers in The Cloud
The Parquet Format and Performance Optimization Opportunities
System dependability
Distributed storage system
Flink vs. Spark
Resource provisioning optimization in cloud computing
IPS (intrusion prevention system)
Distributed DBMS - Unit 9 - Distributed Deadlock & Recovery
Storage As A Service (StAAS)
What Is DevOps?
Lecture 1 introduction to parallel and distributed computing
Network DDoS Incident Response Cheat Sheet (by SANS)
A Thorough Comparison of Delta Lake, Iceberg and Hudi
From cache to in-memory data grid. Introduction to Hazelcast.
OWASP Top 10 2021 Presentation (Jul 2022)
Ad

Similar to Reddit/Quora Software System Design (20)

PDF
Facebook Messenger/Whatsapp System Design
PDF
Amazon Products Category Ranking System Design
PDF
Recommending the world's knowledge
PPTX
Machine Learning at Quora (2/26/2016)
PDF
[CS570] Machine Learning Team Project (I know what items really are)
PDF
Search, Discovery and Questions at Quora
PPTX
redpill Forensics
PDF
From 0 to 400 GB: Confronting the Challenges of Born-Digital Photographs
PPTX
TrekHubPPt.pptx
PPTX
CH01-1Object-Oriented Systems Development.pptx
PPTX
How Does the USA Today Network Provide Its Readers With Meaningful Content? -...
PDF
DockerCon US 2016 - Scaling Open Source operations
PPTX
Envitter (Environmental Social Media as Twitter)
PPTX
NCompass Live: Best Practices for Digital Collections
PPTX
DOC-20220925-WA0008..pptx
PPTX
eMadrid 2014-01-17 uned Salvador Ros (UNED) "Big Data in Education"
PDF
OPS_Unit-2--Open Source Demystifying.pdf
PDF
H2O World - Quora: Machine Learning Algorithms to Grow the World's Knowledge ...
PDF
Fedora Futures - CNI 2012
PDF
A Personalized Software Assistant Framework To Achieve User Goals
Facebook Messenger/Whatsapp System Design
Amazon Products Category Ranking System Design
Recommending the world's knowledge
Machine Learning at Quora (2/26/2016)
[CS570] Machine Learning Team Project (I know what items really are)
Search, Discovery and Questions at Quora
redpill Forensics
From 0 to 400 GB: Confronting the Challenges of Born-Digital Photographs
TrekHubPPt.pptx
CH01-1Object-Oriented Systems Development.pptx
How Does the USA Today Network Provide Its Readers With Meaningful Content? -...
DockerCon US 2016 - Scaling Open Source operations
Envitter (Environmental Social Media as Twitter)
NCompass Live: Best Practices for Digital Collections
DOC-20220925-WA0008..pptx
eMadrid 2014-01-17 uned Salvador Ros (UNED) "Big Data in Education"
OPS_Unit-2--Open Source Demystifying.pdf
H2O World - Quora: Machine Learning Algorithms to Grow the World's Knowledge ...
Fedora Futures - CNI 2012
A Personalized Software Assistant Framework To Achieve User Goals
Ad

Recently uploaded (20)

PDF
The CXO Playbook 2025 – Future-Ready Strategies for C-Suite Leaders Cerebrai...
PPT
introduction to datamining and warehousing
PDF
SMART SIGNAL TIMING FOR URBAN INTERSECTIONS USING REAL-TIME VEHICLE DETECTI...
PPTX
Nature of X-rays, X- Ray Equipment, Fluoroscopy
PDF
Unit I ESSENTIAL OF DIGITAL MARKETING.pdf
PPTX
Current and future trends in Computer Vision.pptx
PPTX
Information Storage and Retrieval Techniques Unit III
PPTX
MET 305 2019 SCHEME MODULE 2 COMPLETE.pptx
PDF
Soil Improvement Techniques Note - Rabbi
PDF
Integrating Fractal Dimension and Time Series Analysis for Optimized Hyperspe...
PPTX
introduction to high performance computing
PDF
UNIT no 1 INTRODUCTION TO DBMS NOTES.pdf
PPTX
communication and presentation skills 01
PDF
Enhancing Cyber Defense Against Zero-Day Attacks using Ensemble Neural Networks
PDF
keyrequirementskkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
PPTX
Fundamentals of Mechanical Engineering.pptx
PPT
INTRODUCTION -Data Warehousing and Mining-M.Tech- VTU.ppt
PPT
Total quality management ppt for engineering students
PDF
A SYSTEMATIC REVIEW OF APPLICATIONS IN FRAUD DETECTION
PPTX
UNIT - 3 Total quality Management .pptx
The CXO Playbook 2025 – Future-Ready Strategies for C-Suite Leaders Cerebrai...
introduction to datamining and warehousing
SMART SIGNAL TIMING FOR URBAN INTERSECTIONS USING REAL-TIME VEHICLE DETECTI...
Nature of X-rays, X- Ray Equipment, Fluoroscopy
Unit I ESSENTIAL OF DIGITAL MARKETING.pdf
Current and future trends in Computer Vision.pptx
Information Storage and Retrieval Techniques Unit III
MET 305 2019 SCHEME MODULE 2 COMPLETE.pptx
Soil Improvement Techniques Note - Rabbi
Integrating Fractal Dimension and Time Series Analysis for Optimized Hyperspe...
introduction to high performance computing
UNIT no 1 INTRODUCTION TO DBMS NOTES.pdf
communication and presentation skills 01
Enhancing Cyber Defense Against Zero-Day Attacks using Ensemble Neural Networks
keyrequirementskkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
Fundamentals of Mechanical Engineering.pptx
INTRODUCTION -Data Warehousing and Mining-M.Tech- VTU.ppt
Total quality management ppt for engineering students
A SYSTEMATIC REVIEW OF APPLICATIONS IN FRAUD DETECTION
UNIT - 3 Total quality Management .pptx

Reddit/Quora Software System Design

  • 1. Methodology for Reddit/Quora 1. 5 Step Process 1.1. Use cases, assumptions, constraints 1.2. Back of envelope calculations 1.3. Design core components 1.4. High level design 1.5. Scale the design
  • 2. Reddit/Quora Step 1a: Use Cases ● Functional requirements (use cases) ○ Users posts a topic ○ User reacts to a topic (comment, like) ○ Notification service when a reaction is on a topic ○ User search a topic ● Nonfunctional requirements ○ High availability
  • 3. Reddit/Quora Step 1b: Constraints, Assumptions ● Uneven traffic ● 10 million users/daily ● 100,000 topics ● 33% of users reacts daily ○ 3:1 read-write
  • 4. Reddit/Quora Step 2a: Back of envelope calculations ● Database design ○ Users ■ Id ■ Name ■ Topics_associated ○ Topics ■ Id ■ Topic_name ■ Created_at ■ Participants_progress (object with users_id and timestamps) ○ Reactions ■ Id ■ Reaction_type ■ Content ■ Topic_id ■ User_id ■ Created_at
  • 5. Reddit/Quora Step 2b: Back of envelope calculations ● Daily traffic ○ 10 million users/daily ○ 100,000 reactions/sec ○ 33% of users reacts daily ■ 3:1 read-write ● Storage ○ Tables of Users (~50 bytes), Topics (~100 bytes), Reactions (~350 bytes) ■ ~500 bytes * 100,000 reactions/sec ● 50 MB/s
  • 6. Reddit/Quora Step 3: Design core components ● Use case #1: User create a topic ○ Server, Write API, database ● Use case #2: Users react to a topic ○ Server, Write API, Read API, database, object store ● Use case #3: Notification service ○ Server, Write API, database, notification service ● Use case #4: Users search for a topic ○ Server, database, Search API, search service
  • 8. Reddit/Quora Step 5: Scale the Design ● High availability ○ Add load balancers, DB shards, caches, DNS