René's URL Explorer Experiment


Title: GitHub - ApressJavaCode/system-design-primer: Learn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards.

Open Graph Title: GitHub - ApressJavaCode/system-design-primer: Learn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards.

X Title: GitHub - ApressJavaCode/system-design-primer: Learn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards.

Description: Learn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards. - ApressJavaCode/system-design-primer

Open Graph Description: Learn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards. - ApressJavaCode/system-design-primer

X Description: Learn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards. - ApressJavaCode/system-design-primer

Opengraph URL: https://github.com/ApressJavaCode/system-design-primer

X: @github

direct link

Domain: patch-diff.githubusercontent.com

route-pattern/:user_id/:repository
route-controllerfiles
route-actiondisambiguate
fetch-noncev2:a199dfb1-6edd-2029-697d-6824303caeb6
current-catalog-service-hashf3abb0cc802f3d7b95fc8762b94bdcb13bf39634c40c357301c4aa1d67a256fb
request-idA290:DEE16:D1DCE2:115DE8F:696EEBF7
html-safe-nonce82cac32b1e53880d5838114377631a0cd697db6a9b170c591a2c7189732d2f8e
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJBMjkwOkRFRTE2OkQxRENFMjoxMTVERThGOjY5NkVFQkY3IiwidmlzaXRvcl9pZCI6Ijg0NDU0NTA0MDc4NzI3NTI2MzEiLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ==
visitor-hmacc1a6c72873056df7c48b2729fbda2cd679de334a7bb8b82c847cebd58a933595
hovercard-subject-tagrepository:481987777
github-keyboard-shortcutsrepository,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location//
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/ApressJavaCode/system-design-primer
twitter:imagehttps://opengraph.githubassets.com/2be08a272c0f6864d270ec1cd49e32e23d0cd4cd7119757ef2042e5a4950c16b/ApressJavaCode/system-design-primer
twitter:cardsummary_large_image
og:imagehttps://opengraph.githubassets.com/2be08a272c0f6864d270ec1cd49e32e23d0cd4cd7119757ef2042e5a4950c16b/ApressJavaCode/system-design-primer
og:image:altLearn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards. - ApressJavaCode/system-design-primer
og:image:width1200
og:image:height600
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
Noneb278ad162d35332b6de714dfb005de04386c4d92df6475522bef910f491a35ee
turbo-cache-controlno-preview
go-importgithub.com/ApressJavaCode/system-design-primer git https://github.com/ApressJavaCode/system-design-primer.git
octolytics-dimension-user_id103004155
octolytics-dimension-user_loginApressJavaCode
octolytics-dimension-repository_id481987777
octolytics-dimension-repository_nwoApressJavaCode/system-design-primer
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forktrue
octolytics-dimension-repository_parent_id83222441
octolytics-dimension-repository_parent_nwodonnemartin/system-design-primer
octolytics-dimension-repository_network_root_id83222441
octolytics-dimension-repository_network_root_nwodonnemartin/system-design-primer
turbo-body-classeslogged-out env-production page-responsive
disable-turbofalse
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
release39aed5006635ab6f45e6b77d23e73b08a00272a3
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#start-of-content
https://patch-diff.githubusercontent.com/
Sign in https://patch-diff.githubusercontent.com/login?return_to=https%3A%2F%2Fgithub.com%2FApressJavaCode%2Fsystem-design-primer
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub SparkBuild and deploy intelligent appshttps://github.com/features/spark
GitHub ModelsManage and compare promptshttps://github.com/features/models
MCP RegistryNewIntegrate external toolshttps://github.com/mcp
ActionsAutomate any workflowhttps://github.com/features/actions
CodespacesInstant dev environmentshttps://github.com/features/codespaces
IssuesPlan and track workhttps://github.com/features/issues
Code ReviewManage code changeshttps://github.com/features/code-review
GitHub Advanced SecurityFind and fix vulnerabilitieshttps://github.com/security/advanced-security
Code securitySecure your code as you buildhttps://github.com/security/advanced-security/code-security
Secret protectionStop leaks before they starthttps://github.com/security/advanced-security/secret-protection
Why GitHubhttps://github.com/why-github
Documentationhttps://docs.github.com
Bloghttps://github.blog
Changeloghttps://github.blog/changelog
Marketplacehttps://github.com/marketplace
View all featureshttps://github.com/features
Enterpriseshttps://github.com/enterprise
Small and medium teamshttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
App Modernizationhttps://github.com/solutions/use-case/app-modernization
DevSecOpshttps://github.com/solutions/use-case/devsecops
DevOpshttps://github.com/solutions/use-case/devops
CI/CDhttps://github.com/solutions/use-case/ci-cd
View all use caseshttps://github.com/solutions/use-case
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
View all industrieshttps://github.com/solutions/industry
View all solutionshttps://github.com/solutions
AIhttps://github.com/resources/articles?topic=ai
Software Developmenthttps://github.com/resources/articles?topic=software-development
DevOpshttps://github.com/resources/articles?topic=devops
Securityhttps://github.com/resources/articles?topic=security
View all topicshttps://github.com/resources/articles
Customer storieshttps://github.com/customer-stories
Events & webinarshttps://github.com/resources/events
Ebooks & reportshttps://github.com/resources/whitepapers
Business insightshttps://github.com/solutions/executive-insights
GitHub Skillshttps://skills.github.com
Documentationhttps://docs.github.com
Customer supporthttps://support.github.com
Community forumhttps://github.com/orgs/community/discussions
Trust centerhttps://github.com/trust-center
Partnershttps://github.com/partners
GitHub SponsorsFund open source developershttps://github.com/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/accelerator
Archive Programhttps://archiveprogram.github.com
Topicshttps://github.com/topics
Trendinghttps://github.com/trending
Collectionshttps://github.com/collections
Enterprise platformAI-powered developer platformhttps://github.com/enterprise
GitHub Advanced SecurityEnterprise-grade security featureshttps://github.com/security/advanced-security
Copilot for BusinessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/premium-support
Pricinghttps://github.com/pricing
Search syntax tipshttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
documentationhttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
Sign in https://patch-diff.githubusercontent.com/login?return_to=https%3A%2F%2Fgithub.com%2FApressJavaCode%2Fsystem-design-primer
Sign up https://patch-diff.githubusercontent.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E&source=header-repo&source_repo=ApressJavaCode%2Fsystem-design-primer
Reloadhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer
Reloadhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer
Reloadhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer
ApressJavaCode https://patch-diff.githubusercontent.com/ApressJavaCode
system-design-primerhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer
donnemartin/system-design-primerhttps://patch-diff.githubusercontent.com/donnemartin/system-design-primer
Notifications https://patch-diff.githubusercontent.com/login?return_to=%2FApressJavaCode%2Fsystem-design-primer
Fork 0 https://patch-diff.githubusercontent.com/login?return_to=%2FApressJavaCode%2Fsystem-design-primer
Star 0 https://patch-diff.githubusercontent.com/login?return_to=%2FApressJavaCode%2Fsystem-design-primer
View license https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/LICENSE.txt
0 stars https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/stargazers
54.1k forks https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/forks
Branches https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/branches
Tags https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/tags
Activity https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/activity
Star https://patch-diff.githubusercontent.com/login?return_to=%2FApressJavaCode%2Fsystem-design-primer
Notifications https://patch-diff.githubusercontent.com/login?return_to=%2FApressJavaCode%2Fsystem-design-primer
Code https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer
Pull requests 0 https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/pulls
Actions https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/actions
Projects 0 https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/projects
Security Uh oh! There was an error while loading. Please reload this page. https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/security
Please reload this pagehttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer
Insights https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/pulse
Code https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer
Pull requests https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/pulls
Actions https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/actions
Projects https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/projects
Security https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/security
Insights https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/pulse
Brancheshttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/branches
Tagshttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/tags
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/branches
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/tags
323 Commitshttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/commits/master/
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/commits/master/
.githubhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/tree/master/.github
.githubhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/tree/master/.github
imageshttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/tree/master/images
imageshttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/tree/master/images
resourceshttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/tree/master/resources
resourceshttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/tree/master/resources
solutionshttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/tree/master/solutions
solutionshttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/tree/master/solutions
.gitattributeshttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/.gitattributes
.gitattributeshttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/.gitattributes
.gitignorehttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/.gitignore
.gitignorehttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/.gitignore
CONTRIBUTING.mdhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/CONTRIBUTING.md
CONTRIBUTING.mdhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/CONTRIBUTING.md
LICENSE.txthttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/LICENSE.txt
LICENSE.txthttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/LICENSE.txt
README-ja.mdhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/README-ja.md
README-ja.mdhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/README-ja.md
README-zh-Hans.mdhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/README-zh-Hans.md
README-zh-Hans.mdhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/README-zh-Hans.md
README-zh-TW.mdhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/README-zh-TW.md
README-zh-TW.mdhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/README-zh-TW.md
README.mdhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/README.md
README.mdhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/README.md
TRANSLATIONS.mdhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/TRANSLATIONS.md
TRANSLATIONS.mdhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/TRANSLATIONS.md
epub-metadata.yamlhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/epub-metadata.yaml
epub-metadata.yamlhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/epub-metadata.yaml
generate-epub.shhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/generate-epub.sh
generate-epub.shhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/generate-epub.sh
READMEhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer
Contributinghttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer
Licensehttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer
Englishhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/README.md
日本語https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/README-ja.md
简体中文https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/README-zh-Hans.md
繁體中文https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/README-zh-TW.md
العَرَبِيَّة‎https://github.com/donnemartin/system-design-primer/issues/170
বাংলাhttps://github.com/donnemartin/system-design-primer/issues/220
Português do Brasilhttps://github.com/donnemartin/system-design-primer/issues/40
Deutschhttps://github.com/donnemartin/system-design-primer/issues/186
ελληνικάhttps://github.com/donnemartin/system-design-primer/issues/130
עבריתhttps://github.com/donnemartin/system-design-primer/issues/272
Italianohttps://github.com/donnemartin/system-design-primer/issues/104
한국어https://github.com/donnemartin/system-design-primer/issues/102
فارسیhttps://github.com/donnemartin/system-design-primer/issues/110
Polskihttps://github.com/donnemartin/system-design-primer/issues/68
русский языкhttps://github.com/donnemartin/system-design-primer/issues/87
Españolhttps://github.com/donnemartin/system-design-primer/issues/136
ภาษาไทยhttps://github.com/donnemartin/system-design-primer/issues/187
Türkçehttps://github.com/donnemartin/system-design-primer/issues/39
tiếng Việthttps://github.com/donnemartin/system-design-primer/issues/127
Françaishttps://github.com/donnemartin/system-design-primer/issues/250
Add Translationhttps://github.com/donnemartin/system-design-primer/issues/28
translatehttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/TRANSLATIONS.md
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#the-system-design-primer
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/images/jj3A5N8.png
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#motivation
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#learn-how-to-design-large-scale-systems
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#learn-from-the-open-source-community
Contributionshttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#contributing
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#prep-for-the-system-design-interview
Study guidehttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#study-guide
How to approach a system design interview questionhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#how-to-approach-a-system-design-interview-question
System design interview questions, with solutionshttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#system-design-interview-questions-with-solutions
Object-oriented design interview questions, with solutionshttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#object-oriented-design-interview-questions-with-solutions
Additional system design interview questionshttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#additional-system-design-interview-questions
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#anki-flashcards
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/images/zdCAkB3.png
Anki flashcard deckshttps://apps.ankiweb.net/
System design deckhttps://github.com/donnemartin/system-design-primer/tree/master/resources/flash_cards/System%20Design.apkg
System design exercises deckhttps://github.com/donnemartin/system-design-primer/tree/master/resources/flash_cards/System%20Design%20Exercises.apkg
Object oriented design exercises deckhttps://github.com/donnemartin/system-design-primer/tree/master/resources/flash_cards/OO%20Design.apkg
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#coding-resource-interactive-coding-challenges
Coding Interviewhttps://github.com/donnemartin/interactive-coding-challenges
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/images/b4YtAEN.png
Interactive Coding Challengeshttps://github.com/donnemartin/interactive-coding-challenges
Coding deckhttps://github.com/donnemartin/interactive-coding-challenges/tree/master/anki_cards/Coding.apkg
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#contributing
Translatehttps://github.com/donnemartin/system-design-primer/issues/28
under developmenthttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#under-development
Contributing Guidelineshttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/CONTRIBUTING.md
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#index-of-system-design-topics
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/images/jrUBAF7.png
System design topics: start herehttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#system-design-topics-start-here
Step 1: Review the scalability video lecturehttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#step-1-review-the-scalability-video-lecture
Step 2: Review the scalability articlehttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#step-2-review-the-scalability-article
Next stepshttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#next-steps
Performance vs scalabilityhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#performance-vs-scalability
Latency vs throughputhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#latency-vs-throughput
Availability vs consistencyhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#availability-vs-consistency
CAP theoremhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#cap-theorem
CP - consistency and partition tolerancehttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#cp---consistency-and-partition-tolerance
AP - availability and partition tolerancehttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#ap---availability-and-partition-tolerance
Consistency patternshttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#consistency-patterns
Weak consistencyhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#weak-consistency
Eventual consistencyhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#eventual-consistency
Strong consistencyhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#strong-consistency
Availability patternshttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#availability-patterns
Fail-overhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#fail-over
Replicationhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#replication
Availability in numbershttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#availability-in-numbers
Domain name systemhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#domain-name-system
Content delivery networkhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#content-delivery-network
Push CDNshttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#push-cdns
Pull CDNshttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#pull-cdns
Load balancerhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#load-balancer
Active-passivehttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#active-passive
Active-activehttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#active-active
Layer 4 load balancinghttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#layer-4-load-balancing
Layer 7 load balancinghttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#layer-7-load-balancing
Horizontal scalinghttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#horizontal-scaling
Reverse proxy (web server)https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#reverse-proxy-web-server
Load balancer vs reverse proxyhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#load-balancer-vs-reverse-proxy
Application layerhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#application-layer
Microserviceshttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#microservices
Service discoveryhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#service-discovery
Databasehttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#database
Relational database management system (RDBMS)https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#relational-database-management-system-rdbms
Master-slave replicationhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#master-slave-replication
Master-master replicationhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#master-master-replication
Federationhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#federation
Shardinghttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#sharding
Denormalizationhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#denormalization
SQL tuninghttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#sql-tuning
NoSQLhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#nosql
Key-value storehttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#key-value-store
Document storehttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#document-store
Wide column storehttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#wide-column-store
Graph Databasehttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#graph-database
SQL or NoSQLhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#sql-or-nosql
Cachehttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#cache
Client cachinghttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#client-caching
CDN cachinghttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#cdn-caching
Web server cachinghttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#web-server-caching
Database cachinghttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#database-caching
Application cachinghttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#application-caching
Caching at the database query levelhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#caching-at-the-database-query-level
Caching at the object levelhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#caching-at-the-object-level
When to update the cachehttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#when-to-update-the-cache
Cache-asidehttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#cache-aside
Write-throughhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#write-through
Write-behind (write-back)https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#write-behind-write-back
Refresh-aheadhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#refresh-ahead
Asynchronismhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#asynchronism
Message queueshttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#message-queues
Task queueshttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#task-queues
Back pressurehttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#back-pressure
Communicationhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#communication
Transmission control protocol (TCP)https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#transmission-control-protocol-tcp
User datagram protocol (UDP)https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#user-datagram-protocol-udp
Remote procedure call (RPC)https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#remote-procedure-call-rpc
Representational state transfer (REST)https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#representational-state-transfer-rest
Securityhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#security
Appendixhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#appendix
Powers of two tablehttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#powers-of-two-table
Latency numbers every programmer should knowhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#latency-numbers-every-programmer-should-know
Additional system design interview questionshttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#additional-system-design-interview-questions
Real world architectureshttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#real-world-architectures
Company architectureshttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#company-architectures
Company engineering blogshttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#company-engineering-blogs
Under developmenthttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#under-development
Creditshttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#credits
Contact infohttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#contact-info
Licensehttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#license
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#study-guide
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/images/OfVllex.png
System design topicshttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#index-of-system-design-topics
Company engineering blogshttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#company-engineering-blogs
Real world architectureshttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#real-world-architectures
How to approach a system design interview questionhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#how-to-approach-a-system-design-interview-question
System design interview questions with solutionshttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#system-design-interview-questions-with-solutions
Object-oriented design interview questions with solutionshttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#object-oriented-design-interview-questions-with-solutions
Additional system design interview questionshttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#additional-system-design-interview-questions
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#how-to-approach-a-system-design-interview-question
System design interview questions with solutionshttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#system-design-interview-questions-with-solutions
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#step-1-outline-use-cases-constraints-and-assumptions
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#step-2-create-a-high-level-design
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#step-3-design-core-components
design a url shortening servicehttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/solutions/system_design/pastebin/README.md
MD5https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/solutions/system_design/pastebin/README.md
Base62https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/solutions/system_design/pastebin/README.md
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#step-4-scale-the-design
principles of scalable system designhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#index-of-system-design-topics
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#back-of-the-envelope-calculations
Appendixhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#appendix
Use back of the envelope calculationshttp://highscalability.com/blog/2011/1/26/google-pro-tip-use-back-of-the-envelope-calculations-to-choo.html
Powers of two tablehttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#powers-of-two-table
Latency numbers every programmer should knowhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#latency-numbers-every-programmer-should-know
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#sources-and-further-reading
How to ace a systems design interviewhttps://www.palantir.com/2011/10/how-to-rock-a-systems-design-interview/
The system design interviewhttp://www.hiredintech.com/system-design
Intro to Architecture and Systems Design Interviewshttps://www.youtube.com/watch?v=ZgdS0EUmn70
System design templatehttps://leetcode.com/discuss/career/229177/My-System-Design-Template
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#system-design-interview-questions-with-solutions
Solutionhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/solutions/system_design/pastebin/README.md
Solutionhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/solutions/system_design/twitter/README.md
Solutionhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/solutions/system_design/web_crawler/README.md
Solutionhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/solutions/system_design/mint/README.md
Solutionhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/solutions/system_design/social_graph/README.md
Solutionhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/solutions/system_design/query_cache/README.md
Solutionhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/solutions/system_design/sales_rank/README.md
Solutionhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/solutions/system_design/scaling_aws/README.md
Contributehttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#contributing
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#design-pastebincom-or-bitly
View exercise and solutionhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/solutions/system_design/pastebin/README.md
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/images/4edXG0T.png
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#design-the-twitter-timeline-and-search-or-facebook-feed-and-search
View exercise and solutionhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/solutions/system_design/twitter/README.md
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/images/jrUBAF7.png
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#design-a-web-crawler
View exercise and solutionhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/solutions/system_design/web_crawler/README.md
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/images/bWxPtQA.png
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#design-mintcom
View exercise and solutionhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/solutions/system_design/mint/README.md
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/images/V5q57vU.png
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#design-the-data-structures-for-a-social-network
View exercise and solutionhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/solutions/system_design/social_graph/README.md
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/images/cdCv5g7.png
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#design-a-key-value-store-for-a-search-engine
View exercise and solutionhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/solutions/system_design/query_cache/README.md
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/images/4j99mhe.png
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#design-amazons-sales-ranking-by-category-feature
View exercise and solutionhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/solutions/system_design/sales_rank/README.md
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/images/MzExP06.png
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#design-a-system-that-scales-to-millions-of-users-on-aws
View exercise and solutionhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/solutions/system_design/scaling_aws/README.md
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/images/jj3A5N8.png
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#object-oriented-design-interview-questions-with-solutions
Solutionhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/solutions/object_oriented_design/hash_table/hash_map.ipynb
Solutionhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/solutions/object_oriented_design/lru_cache/lru_cache.ipynb
Solutionhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/solutions/object_oriented_design/call_center/call_center.ipynb
Solutionhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/solutions/object_oriented_design/deck_of_cards/deck_of_cards.ipynb
Solutionhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/solutions/object_oriented_design/parking_lot/parking_lot.ipynb
Solutionhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/solutions/object_oriented_design/online_chat/online_chat.ipynb
Contributehttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#contributing
Contributehttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#contributing
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#system-design-topics-start-here
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#step-1-review-the-scalability-video-lecture
Scalability Lecture at Harvardhttps://www.youtube.com/watch?v=-W9F__D3oY4
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#step-2-review-the-scalability-article
Scalabilityhttp://www.lecloud.net/tagged/scalability/chrono
Cloneshttp://www.lecloud.net/post/7295452622/scalability-for-dummies-part-1-clones
Databaseshttp://www.lecloud.net/post/7994751381/scalability-for-dummies-part-2-database
Cacheshttp://www.lecloud.net/post/9246290032/scalability-for-dummies-part-3-cache
Asynchronismhttp://www.lecloud.net/post/9699762917/scalability-for-dummies-part-4-asynchronism
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#next-steps
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#performance-vs-scalability
1http://www.allthingsdistributed.com/2006/03/a_word_on_scalability.html
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#sources-and-further-reading-1
A word on scalabilityhttp://www.allthingsdistributed.com/2006/03/a_word_on_scalability.html
Scalability, availability, stability, patternshttp://www.slideshare.net/jboner/scalability-availability-stability-patterns/
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#latency-vs-throughput
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#sources-and-further-reading-2
Understanding latency vs throughputhttps://community.cadence.com/cadence_blogs_8/b/sd/archive/2010/09/13/understanding-latency-vs-throughput
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#availability-vs-consistency
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#cap-theorem
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/images/bgLMI2u.png
Source: CAP theorem revisitedhttp://robertgreiner.com/2014/08/cap-theorem-revisited
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#cp---consistency-and-partition-tolerance
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#ap---availability-and-partition-tolerance
eventual consistencyhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#eventual-consistency
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#sources-and-further-reading-3
CAP theorem revisitedhttp://robertgreiner.com/2014/08/cap-theorem-revisited/
A plain english introduction to CAP theoremhttp://ksat.me/a-plain-english-introduction-to-cap-theorem
CAP FAQhttps://github.com/henryr/cap-faq
The CAP theoremhttps://www.youtube.com/watch?v=k-Yaq8AHlFA
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#consistency-patterns
CAP theoremhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#cap-theorem
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#weak-consistency
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#eventual-consistency
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#strong-consistency
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#sources-and-further-reading-4
Transactions across data centershttp://snarfed.org/transactions_across_datacenters_io.html
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#availability-patterns
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#fail-over
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#active-passive
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#active-active
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#disadvantages-failover
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#replication
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#master-slave-and-master-master
Databasehttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#database
Master-slave replicationhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#master-slave-replication
Master-master replicationhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#master-master-replication
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#availability-in-numbers
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#999-availability---three-9s
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#9999-availability---four-9s
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#availability-in-parallel-vs-in-sequence
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#in-sequence
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#in-parallel
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#domain-name-system
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/images/IOyLj4i.jpg
Source: DNS security presentationhttp://www.slideshare.net/srikrupa5/dns-security-presentation-issa
www.example.comhttp://www.example.com
time to live (TTL)https://en.wikipedia.org/wiki/Time_to_live
www.example.comhttp://www.example.com
CloudFlarehttps://www.cloudflare.com/dns/
Route 53https://aws.amazon.com/route53/
Weighted round robinhttps://www.g33kinfo.com/info/round-robin-vs-weighted-round-robin-lb
Latency-basedhttps://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy.html#routing-policy-latency
Geolocation-basedhttps://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy.html#routing-policy-geo
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#disadvantages-dns
governments, ISPs, and large companieshttp://superuser.com/questions/472695/who-controls-the-dns-servers/472729
DDoS attackhttp://dyn.com/blog/dyn-analysis-summary-of-friday-october-21-attack/
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#sources-and-further-reading-5
DNS architecturehttps://technet.microsoft.com/en-us/library/dd197427(v=ws.10).aspx
Wikipediahttps://en.wikipedia.org/wiki/Domain_Name_System
DNS articleshttps://support.dnsimple.com/categories/dns/
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#content-delivery-network
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/images/h9TAuGI.jpg
Source: Why use a CDNhttps://www.creative-artworks.eu/why-use-a-content-delivery-network-cdn/
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#push-cdns
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#pull-cdns
time-to-live (TTL)https://en.wikipedia.org/wiki/Time_to_live
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#disadvantages-cdn
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#sources-and-further-reading-6
Globally distributed content deliveryhttps://figshare.com/articles/Globally_distributed_content_delivery/6605972
The differences between push and pull CDNshttp://www.travelblogadvice.com/technical/the-differences-between-push-and-pull-cdns/
Wikipediahttps://en.wikipedia.org/wiki/Content_delivery_network
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#load-balancer
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/images/h81n9iK.png
Source: Scalable system design patternshttp://horicky.blogspot.com/2010/10/scalable-system-design-patterns.html
X.509 certificateshttps://en.wikipedia.org/wiki/X.509
active-passivehttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#active-passive
active-activehttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#active-active
Round robin or weighted round robinhttps://www.g33kinfo.com/info/round-robin-vs-weighted-round-robin-lb
Layer 4https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#layer-4-load-balancing
Layer 7https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#layer-7-load-balancing
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#layer-4-load-balancing
transport layerhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#communication
Network Address Translation (NAT)https://www.nginx.com/resources/glossary/layer-4-load-balancing/
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#layer-7-load-balancing
application layerhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#communication
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#horizontal-scaling
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#disadvantages-horizontal-scaling
databasehttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#database
cachehttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#cache
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#disadvantages-load-balancer
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#sources-and-further-reading-7
NGINX architecturehttps://www.nginx.com/blog/inside-nginx-how-we-designed-for-performance-scale/
HAProxy architecture guidehttp://www.haproxy.org/download/1.2/doc/architecture.txt
Scalabilityhttp://www.lecloud.net/post/7295452622/scalability-for-dummies-part-1-clones
Wikipediahttps://en.wikipedia.org/wiki/Load_balancing_(computing)
Layer 4 load balancinghttps://www.nginx.com/resources/glossary/layer-4-load-balancing/
Layer 7 load balancinghttps://www.nginx.com/resources/glossary/layer-7-load-balancing/
ELB listener confighttp://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-listener-config.html
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#reverse-proxy-web-server
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/images/n41Azff.png
Source: Wikipediahttps://upload.wikimedia.org/wikipedia/commons/6/67/Reverse_proxy_h2g2bob.svg
X.509 certificateshttps://en.wikipedia.org/wiki/X.509
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#load-balancer-vs-reverse-proxy
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#disadvantages-reverse-proxy
failoverhttps://en.wikipedia.org/wiki/Failover
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#sources-and-further-reading-8
Reverse proxy vs load balancerhttps://www.nginx.com/resources/glossary/reverse-proxy-vs-load-balancer/
NGINX architecturehttps://www.nginx.com/blog/inside-nginx-how-we-designed-for-performance-scale/
HAProxy architecture guidehttp://www.haproxy.org/download/1.2/doc/architecture.txt
Wikipediahttps://en.wikipedia.org/wiki/Reverse_proxy
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#application-layer
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/images/yB5SYwm.png
Source: Intro to architecting systems for scalehttp://lethain.com/introduction-to-architecting-systems-for-scale/#platform_layer
asynchronismhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#asynchronism
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#microservices
microserviceshttps://en.wikipedia.org/wiki/Microservices
1https://smartbear.com/learn/api-design/what-are-microservices
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#service-discovery
Consulhttps://www.consul.io/docs/index.html
Etcdhttps://coreos.com/etcd/docs/latest
Zookeeperhttp://www.slideshare.net/sauravhaloi/introduction-to-apache-zookeeper
Health checkshttps://www.consul.io/intro/getting-started/checks.html
HTTPhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#hypertext-transfer-protocol-http
key-value storehttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#key-value-store
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#disadvantages-application-layer
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#sources-and-further-reading-9
Intro to architecting systems for scalehttp://lethain.com/introduction-to-architecting-systems-for-scale
Crack the system design interviewhttp://www.puncsky.com/blog/2016-02-13-crack-the-system-design-interview
Service oriented architecturehttps://en.wikipedia.org/wiki/Service-oriented_architecture
Introduction to Zookeeperhttp://www.slideshare.net/sauravhaloi/introduction-to-apache-zookeeper
Here's what you need to know about building microserviceshttps://cloudncode.wordpress.com/2016/07/22/msa-getting-started/
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#database
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/images/Xkm5CXz.png
Source: Scaling up to your first 10 million usershttps://www.youtube.com/watch?v=kKjm4ehYiMs
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#relational-database-management-system-rdbms
transactionshttps://en.wikipedia.org/wiki/Database_transaction
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#master-slave-replication
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/images/C9ioGtn.png
Source: Scalability, availability, stability, patternshttp://www.slideshare.net/jboner/scalability-availability-stability-patterns/
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#disadvantages-master-slave-replication
Disadvantage(s): replicationhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#disadvantages-replication
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#master-master-replication
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/images/krAHLGg.png
Source: Scalability, availability, stability, patternshttp://www.slideshare.net/jboner/scalability-availability-stability-patterns/
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#disadvantages-master-master-replication
Disadvantage(s): replicationhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#disadvantages-replication
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#disadvantages-replication
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#sources-and-further-reading-replication
Scalability, availability, stability, patternshttp://www.slideshare.net/jboner/scalability-availability-stability-patterns/
Multi-master replicationhttps://en.wikipedia.org/wiki/Multi-master_replication
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#federation
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/images/U3qV33e.png
Source: Scaling up to your first 10 million usershttps://www.youtube.com/watch?v=kKjm4ehYiMs
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#disadvantages-federation
server linkhttp://stackoverflow.com/questions/5145637/querying-data-by-joining-two-tables-in-two-database-on-different-servers
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#sources-and-further-reading-federation
Scaling up to your first 10 million usershttps://www.youtube.com/watch?v=kKjm4ehYiMs
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#sharding
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/images/wU8x5Id.png
Source: Scalability, availability, stability, patternshttp://www.slideshare.net/jboner/scalability-availability-stability-patterns/
federationhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#federation
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#disadvantages-sharding
consistent hashinghttp://www.paperplanes.de/2011/12/9/the-magic-of-consistent-hashing.html
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#sources-and-further-reading-sharding
The coming of the shardhttp://highscalability.com/blog/2009/8/6/an-unorthodox-approach-to-database-design-the-coming-of-the.html
Shard database architecturehttps://en.wikipedia.org/wiki/Shard_(database_architecture)
Consistent hashinghttp://www.paperplanes.de/2011/12/9/the-magic-of-consistent-hashing.html
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#denormalization
PostgreSQLhttps://en.wikipedia.org/wiki/PostgreSQL
materialized viewshttps://en.wikipedia.org/wiki/Materialized_view
federationhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#federation
shardinghttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#sharding
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#disadvantages-denormalization
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#sources-and-further-reading-denormalization
Denormalizationhttps://en.wikipedia.org/wiki/Denormalization
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#sql-tuning
bookshttps://www.amazon.com/s/ref=nb_sb_noss_2?url=search-alias%3Daps&field-keywords=sql+tuning
abhttp://httpd.apache.org/docs/2.2/programs/ab.html
slow query loghttp://dev.mysql.com/doc/refman/5.7/en/slow-query-log.html
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#tighten-up-the-schema
improve search performancehttp://stackoverflow.com/questions/1017239/how-do-null-values-affect-performance-in-a-database-search
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#use-good-indices
B-treehttps://en.wikipedia.org/wiki/B-tree
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#avoid-expensive-joins
Denormalizehttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#denormalization
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#partition-tables
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#tune-the-query-cache
query cachehttps://dev.mysql.com/doc/refman/5.7/en/query-cache.html
performance issueshttps://www.percona.com/blog/2016/10/12/mysql-5-7-performance-tuning-immediately-after-installation/
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#sources-and-further-reading-sql-tuning
Tips for optimizing MySQL querieshttp://aiddroid.com/10-tips-optimizing-mysql-queries-dont-suck/
Is there a good reason i see VARCHAR(255) used so often?http://stackoverflow.com/questions/1217466/is-there-a-good-reason-i-see-varchar255-used-so-often-as-opposed-to-another-l
How do null values affect performance?http://stackoverflow.com/questions/1017239/how-do-null-values-affect-performance-in-a-database-search
Slow query loghttp://dev.mysql.com/doc/refman/5.7/en/slow-query-log.html
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#nosql
eventual consistencyhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#eventual-consistency
CAP Theoremhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#cap-theorem
SQL or NoSQLhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#sql-or-nosql
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#key-value-store
lexicographic orderhttps://en.wikipedia.org/wiki/Lexicographical_order
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#sources-and-further-reading-key-value-store
Key-value databasehttps://en.wikipedia.org/wiki/Key-value_database
Disadvantages of key-value storeshttp://stackoverflow.com/questions/4056093/what-are-the-disadvantages-of-using-a-key-value-table-over-nullable-columns-or
Redis architecturehttp://qnimate.com/overview-of-redis-architecture/
Memcached architecturehttps://adayinthelifeof.nl/2011/02/06/memcache-internals/
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#document-store
MongoDBhttps://www.mongodb.com/mongodb-architecture
CouchDBhttps://blog.couchdb.org/2016/08/01/couchdb-2-0-architecture/
DynamoDBhttp://www.read.seas.harvard.edu/~kohler/class/cs239-w08/decandia07dynamo.pdf
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#sources-and-further-reading-document-store
Document-oriented databasehttps://en.wikipedia.org/wiki/Document-oriented_database
MongoDB architecturehttps://www.mongodb.com/mongodb-architecture
CouchDB architecturehttps://blog.couchdb.org/2016/08/01/couchdb-2-0-architecture/
Elasticsearch architecturehttps://www.elastic.co/blog/found-elasticsearch-from-the-bottom-up
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#wide-column-store
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/images/n16iOGk.png
Source: SQL & NoSQL, a brief historyhttp://blog.grio.com/2015/11/sql-nosql-a-brief-history.html
Bigtablehttp://www.read.seas.harvard.edu/~kohler/class/cs239-w08/chang06bigtable.pdf
HBasehttps://www.edureka.co/blog/hbase-architecture/
Cassandrahttp://docs.datastax.com/en/cassandra/3.0/cassandra/architecture/archIntro.html
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#sources-and-further-reading-wide-column-store
SQL & NoSQL, a brief historyhttp://blog.grio.com/2015/11/sql-nosql-a-brief-history.html
Bigtable architecturehttp://www.read.seas.harvard.edu/~kohler/class/cs239-w08/chang06bigtable.pdf
HBase architecturehttps://www.edureka.co/blog/hbase-architecture/
Cassandra architecturehttp://docs.datastax.com/en/cassandra/3.0/cassandra/architecture/archIntro.html
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#graph-database
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/images/fNcl65g.png
Source: Graph databasehttps://en.wikipedia.org/wiki/File:GraphDatabase_PropertyGraph.png
REST APIshttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#representational-state-transfer-rest
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#sources-and-further-reading-graph
Graph databasehttps://en.wikipedia.org/wiki/Graph_database
Neo4jhttps://neo4j.com/
FlockDBhttps://blog.twitter.com/2010/introducing-flockdb
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#sources-and-further-reading-nosql
Explanation of base terminologyhttp://stackoverflow.com/questions/3342497/explanation-of-base-terminology
NoSQL databases a survey and decision guidancehttps://medium.com/baqend-blog/nosql-databases-a-survey-and-decision-guidance-ea7823a822d#.wskogqenq
Scalabilityhttp://www.lecloud.net/post/7994751381/scalability-for-dummies-part-2-database
Introduction to NoSQLhttps://www.youtube.com/watch?v=qI_g07C_Q5I
NoSQL patternshttp://horicky.blogspot.com/2009/11/nosql-patterns.html
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#sql-or-nosql
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/images/wXGqG5f.png
Source: Transitioning from RDBMS to NoSQLhttps://www.infoq.com/articles/Transition-RDBMS-NoSQL/
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#sources-and-further-reading-sql-or-nosql
Scaling up to your first 10 million usershttps://www.youtube.com/watch?v=kKjm4ehYiMs
SQL vs NoSQL differenceshttps://www.sitepoint.com/sql-vs-nosql-differences/
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#cache
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/images/Q6z24La.png
Source: Scalable system design patternshttp://horicky.blogspot.com/2010/10/scalable-system-design-patterns.html
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#client-caching
server sidehttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#reverse-proxy-web-server
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#cdn-caching
CDNshttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#content-delivery-network
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#web-server-caching
Reverse proxieshttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#reverse-proxy-web-server
Varnishhttps://www.varnish-cache.org/
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#database-caching
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#application-caching
cache invalidationhttps://en.wikipedia.org/wiki/Cache_algorithms
least recently used (LRU)https://en.wikipedia.org/wiki/Cache_replacement_policies#Least_recently_used_(LRU)
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#caching-at-the-database-query-level
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#caching-at-the-object-level
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#when-to-update-the-cache
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#cache-aside
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/images/ONjORqk.png
Source: From cache to in-memory data gridhttp://www.slideshare.net/tmatyashovsky/from-cache-to-in-memory-data-grid-introduction-to-hazelcast
Memcachedhttps://memcached.org/
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#disadvantages-cache-aside
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#write-through
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/images/0vBc0hN.png
Source: Scalability, availability, stability, patternshttp://www.slideshare.net/jboner/scalability-availability-stability-patterns/
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#disadvantages-write-through
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#write-behind-write-back
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/images/rgSrvjG.png
Source: Scalability, availability, stability, patternshttp://www.slideshare.net/jboner/scalability-availability-stability-patterns/
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#disadvantages-write-behind
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#refresh-ahead
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/images/kxtjqgE.png
Source: From cache to in-memory data gridhttp://www.slideshare.net/tmatyashovsky/from-cache-to-in-memory-data-grid-introduction-to-hazelcast
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#disadvantages-refresh-ahead
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#disadvantages-cache
cache invalidationhttps://en.wikipedia.org/wiki/Cache_algorithms
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#sources-and-further-reading-10
From cache to in-memory data gridhttp://www.slideshare.net/tmatyashovsky/from-cache-to-in-memory-data-grid-introduction-to-hazelcast
Scalable system design patternshttp://horicky.blogspot.com/2010/10/scalable-system-design-patterns.html
Introduction to architecting systems for scalehttp://lethain.com/introduction-to-architecting-systems-for-scale/
Scalability, availability, stability, patternshttp://www.slideshare.net/jboner/scalability-availability-stability-patterns/
Scalabilityhttp://www.lecloud.net/post/9246290032/scalability-for-dummies-part-3-cache
AWS ElastiCache strategieshttp://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/Strategies.html
Wikipediahttps://en.wikipedia.org/wiki/Cache_(computing)
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#asynchronism
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/images/54GYsSx.png
Source: Intro to architecting systems for scalehttp://lethain.com/introduction-to-architecting-systems-for-scale/#platform_layer
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#message-queues
Redishttps://redis.io/
RabbitMQhttps://www.rabbitmq.com/
Amazon SQShttps://aws.amazon.com/sqs/
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#task-queues
Celeryhttps://docs.celeryproject.org/en/stable/
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#back-pressure
Back pressurehttp://mechanical-sympathy.blogspot.com/2012/05/apply-back-pressure-when-overloaded.html
exponential backoffhttps://en.wikipedia.org/wiki/Exponential_backoff
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#disadvantages-asynchronism
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#sources-and-further-reading-11
It's all a numbers gamehttps://www.youtube.com/watch?v=1KRYH75wgy4
Applying back pressure when overloadedhttp://mechanical-sympathy.blogspot.com/2012/05/apply-back-pressure-when-overloaded.html
Little's lawhttps://en.wikipedia.org/wiki/Little%27s_law
What is the difference between a message queue and a task queue?https://www.quora.com/What-is-the-difference-between-a-message-queue-and-a-task-queue-Why-would-a-task-queue-require-a-message-broker-like-RabbitMQ-Redis-Celery-or-IronMQ-to-function
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#communication
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/images/5KeocQs.jpg
Source: OSI 7 layer modelhttp://www.escotal.com/osilayer.html
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#hypertext-transfer-protocol-http
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#sources-and-further-reading-http
What is HTTP?https://www.nginx.com/resources/glossary/http/
Difference between HTTP and TCPhttps://www.quora.com/What-is-the-difference-between-HTTP-protocol-and-TCP-protocol
Difference between PUT and PATCHhttps://laracasts.com/discuss/channels/general-discussion/whats-the-differences-between-put-and-patch?page=1
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#transmission-control-protocol-tcp
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/images/JdAsdvG.jpg
Source: How to make a multiplayer gamehttp://www.wildbunny.co.uk/blog/2012/10/09/how-to-make-a-multi-player-game-part-1/
IP networkhttps://en.wikipedia.org/wiki/Internet_Protocol
handshakehttps://en.wikipedia.org/wiki/Handshaking
checksum fieldshttps://en.wikipedia.org/wiki/Transmission_Control_Protocol#Checksum_computation
Acknowledgementhttps://en.wikipedia.org/wiki/Acknowledgement_(data_networks)
flow controlhttps://en.wikipedia.org/wiki/Flow_control_(data)
congestion controlhttps://en.wikipedia.org/wiki/Network_congestion#Congestion_control
memcachedhttps://memcached.org/
Connection poolinghttps://en.wikipedia.org/wiki/Connection_pool
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#user-datagram-protocol-udp
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/images/yzDrJtA.jpg
Source: How to make a multiplayer gamehttp://www.wildbunny.co.uk/blog/2012/10/09/how-to-make-a-multi-player-game-part-1/
DHCPhttps://en.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#sources-and-further-reading-tcp-and-udp
Networking for game programminghttp://gafferongames.com/networking-for-game-programmers/udp-vs-tcp/
Key differences between TCP and UDP protocolshttp://www.cyberciti.biz/faq/key-differences-between-tcp-and-udp-protocols/
Difference between TCP and UDPhttp://stackoverflow.com/questions/5970383/difference-between-tcp-and-udp
Transmission control protocolhttps://en.wikipedia.org/wiki/Transmission_Control_Protocol
User datagram protocolhttps://en.wikipedia.org/wiki/User_Datagram_Protocol
Scaling memcache at Facebookhttp://www.cs.bu.edu/~jappavoo/jappavoo.github.com/451/papers/memcache-fb.pdf
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#remote-procedure-call-rpc
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/images/iF4Mkb5.png
Source: Crack the system design interviewhttp://www.puncsky.com/blog/2016-02-13-crack-the-system-design-interview
Protobufhttps://developers.google.com/protocol-buffers/
Thrifthttps://thrift.apache.org/
Avrohttps://avro.apache.org/docs/current/
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#disadvantages-rpc
RPC calls are properly cachedhttp://etherealbits.com/2012/12/debunking-the-myths-of-rpc-rest/
Squidhttp://www.squid-cache.org/
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#representational-state-transfer-rest
HATEOAShttp://restcookbook.com/Basics/hateoas/
representation through headershttps://github.com/for-GET/know-your-http-well/blob/master/headers.md
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#disadvantages-rest
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#rpc-and-rest-calls-comparison
Source: Do you really know why you prefer REST over RPChttps://apihandyman.io/do-you-really-know-why-you-prefer-rest-over-rpc/
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#sources-and-further-reading-rest-and-rpc
Do you really know why you prefer REST over RPChttps://apihandyman.io/do-you-really-know-why-you-prefer-rest-over-rpc/
When are RPC-ish approaches more appropriate than REST?http://programmers.stackexchange.com/a/181186
REST vs JSON-RPChttp://stackoverflow.com/questions/15056878/rest-vs-json-rpc
Debunking the myths of RPC and RESThttp://etherealbits.com/2012/12/debunking-the-myths-of-rpc-rest/
What are the drawbacks of using RESThttps://www.quora.com/What-are-the-drawbacks-of-using-RESTful-APIs
Crack the system design interviewhttp://www.puncsky.com/blog/2016-02-13-crack-the-system-design-interview
Thrifthttps://code.facebook.com/posts/1468950976659943/
Why REST for internal use and not RPChttp://arstechnica.com/civis/viewtopic.php?t=1190508
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#security
contributinghttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#contributing
XSShttps://en.wikipedia.org/wiki/Cross-site_scripting
SQL injectionhttps://en.wikipedia.org/wiki/SQL_injection
least privilegehttps://en.wikipedia.org/wiki/Principle_of_least_privilege
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#sources-and-further-reading-12
API security checklisthttps://github.com/shieldfy/API-Security-Checklist
Security guide for developershttps://github.com/FallibleInc/security-guide-for-developers
OWASP top tenhttps://www.owasp.org/index.php/OWASP_Top_Ten_Cheat_Sheet
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#appendix
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#powers-of-two-table
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#sources-and-further-reading-13
Powers of twohttps://en.wikipedia.org/wiki/Power_of_two
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#latency-numbers-every-programmer-should-know
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#latency-numbers-visualized
https://camo.githubusercontent.com/77f72259e1eb58596b564d1ad823af1853bc60a3/687474703a2f2f692e696d6775722e636f6d2f6b307431652e706e67
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#sources-and-further-reading-14
Latency numbers every programmer should know - 1https://gist.github.com/jboner/2841832
Latency numbers every programmer should know - 2https://gist.github.com/hellerbarde/2843375
Designs, lessons, and advice from building large distributed systemshttp://www.cs.cornell.edu/projects/ladis2009/talks/dean-keynote-ladis2009.pdf
Software Engineering Advice from Building Large-Scale Distributed Systemshttps://static.googleusercontent.com/media/research.google.com/en//people/jeff/stanford-295-talk.pdf
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#additional-system-design-interview-questions
youtube.comhttps://www.youtube.com/watch?v=PE4gwstWhmc
queue.acm.orghttp://queue.acm.org/detail.cfm?id=988407
stackexchange.comhttp://programmers.stackexchange.com/questions/38324/interview-question-how-would-you-implement-google-search
ardendertat.comhttp://www.ardendertat.com/2012/01/11/implementing-search-engines/
stanford.eduhttp://infolab.stanford.edu/~backrub/google.html
quora.comhttps://www.quora.com/How-can-I-build-a-web-crawler-from-scratch
code.google.comhttps://code.google.com/p/google-mobwrite/
neil.fraser.namehttps://neil.fraser.name/writing/sync/
slideshare.nethttp://www.slideshare.net/dvirsky/introduction-to-redis
slideshare.nethttp://www.slideshare.net/oemebamo/introduction-to-memcached
hulu.comhttps://web.archive.org/web/20170406065247/http://tech.hulu.com/blog/2011/09/19/recommendation-system.html
ijcai13.orghttp://ijcai13.org/files/tutorial_slides/td3.pdf
n00tc0d3r.blogspot.comhttp://n00tc0d3r.blogspot.com/
highscalability.comhttp://highscalability.com/blog/2014/2/26/the-whatsapp-architecture-facebook-bought-for-19-billion.html
highscalability.comhttp://highscalability.com/flickr-architecture
highscalability.comhttp://highscalability.com/blog/2011/12/6/instagram-architecture-14-million-users-terabytes-of-photos.html
quora.comhttp://www.quora.com/What-are-best-practices-for-building-something-like-a-News-Feed
quora.comhttp://www.quora.com/Activity-Streams/What-are-the-scaling-issues-to-keep-in-mind-while-developing-a-social-network-feed
slideshare.nethttp://www.slideshare.net/danmckinley/etsy-activity-feeds-architecture
facebook.comhttps://www.facebook.com/note.php?note_id=10150468255628920
highscalability.comhttp://highscalability.com/blog/2012/1/23/facebook-timeline-brought-to-you-by-the-power-of-denormaliza.html
erlang-factory.comhttp://www.erlang-factory.com/upload/presentations/31/EugeneLetuchy-ErlangatFacebook.pdf
facebook.comhttps://www.facebook.com/note.php?note_id=14218138919&id=9445547199&index=0
facebook.comhttps://www.facebook.com/notes/facebook-engineering/under-the-hood-building-out-the-infrastructure-for-graph-search/10151347573598920
facebook.comhttps://www.facebook.com/notes/facebook-engineering/under-the-hood-indexing-and-ranking-in-graph-search/10151361720763920
facebook.comhttps://www.facebook.com/notes/facebook-engineering/under-the-hood-the-natural-language-interface-of-graph-search/10151432733048920
figshare.comhttps://figshare.com/articles/Globally_distributed_content_delivery/6605972
michael-noll.comhttp://www.michael-noll.com/blog/2013/01/18/implementing-real-time-trending-topics-in-storm/
snikolov .wordpress.comhttp://snikolov.wordpress.com/2012/11/14/early-detection-of-twitter-trends/
blog.twitter.comhttps://blog.twitter.com/2010/announcing-snowflake
github.comhttps://github.com/twitter/snowflake/
cs.ucsb.eduhttps://www.cs.ucsb.edu/sites/cs.ucsb.edu/files/docs/reports/2005-23.pdf
wpi.eduhttp://davis.wpi.edu/xmdv/docs/EDBT11-diyang.pdf
highscalability.comhttp://highscalability.com/blog/2009/8/24/how-google-serves-data-from-multiple-datacenters.html
indieflashblog.comhttps://web.archive.org/web/20180929181117/http://www.indieflashblog.com/how-to-create-an-asynchronous-multiplayer-game.html
buildnewgames.comhttp://buildnewgames.com/real-time-multiplayer/
stuffwithstuff.comhttp://journal.stuffwithstuff.com/2013/12/08/babys-first-garbage-collector/
washington.eduhttp://courses.cs.washington.edu/courses/csep521/07wi/prj/rick.pdf
https://stripe.com/blog/https://stripe.com/blog/rate-limiters
Jane Streethttps://youtu.be/b1e4t2k2KJY
Golang Implementationhttps://around25.com/blog/building-a-trading-engine-for-a-crypto-exchange/
Go Implemenationhttp://bhomnick.net/building-a-simple-limit-order-in-go/
Contributehttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#contributing
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#real-world-architectures
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/blob/master/images/TcUo2fw.png
Source: Twitter timelines at scalehttps://www.infoq.com/presentations/Twitter-Timeline-Scalability
research.google.comhttp://static.googleusercontent.com/media/research.google.com/zh-CN/us/archive/mapreduce-osdi04.pdf
slideshare.nethttp://www.slideshare.net/AGrishchenko/apache-spark-architecture
slideshare.nethttp://www.slideshare.net/previa/storm-16094009
harvard.eduhttp://www.read.seas.harvard.edu/~kohler/class/cs239-w08/chang06bigtable.pdf
slideshare.nethttp://www.slideshare.net/alexbaranau/intro-to-hbase
slideshare.nethttp://www.slideshare.net/planetcassandra/cassandra-introduction-features-30103666
harvard.eduhttp://www.read.seas.harvard.edu/~kohler/class/cs239-w08/decandia07dynamo.pdf
slideshare.nethttp://www.slideshare.net/mdirolf/introduction-to-mongodb
research.google.comhttp://research.google.com/archive/spanner-osdi2012.pdf
slideshare.nethttp://www.slideshare.net/oemebamo/introduction-to-memcached
slideshare.nethttp://www.slideshare.net/dvirsky/introduction-to-redis
research.google.comhttp://static.googleusercontent.com/media/research.google.com/zh-CN/us/archive/gfs-sosp2003.pdf
apache.orghttp://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/HdfsDesign.html
research.google.comhttp://static.googleusercontent.com/external_content/untrusted_dlcp/research.google.com/en/us/archive/chubby-osdi06.pdf
research.google.comhttp://static.googleusercontent.com/media/research.google.com/en//pubs/archive/36356.pdf
slideshare.nethttp://www.slideshare.net/mumrah/kafka-talk-tri-hug
slideshare.nethttp://www.slideshare.net/sauravhaloi/introduction-to-apache-zookeeper
Contributehttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#contributing
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#company-architectures
Amazon architecturehttp://highscalability.com/amazon-architecture
Producing 1,500 hours of audio every dayhttp://highscalability.com/blog/2012/7/16/cinchcast-architecture-producing-1500-hours-of-audio-every-d.html
Realtime datamining At 120,000 tweets per secondhttp://highscalability.com/blog/2011/11/29/datasift-architecture-realtime-datamining-at-120000-tweets-p.html
How we've scaled Dropboxhttps://www.youtube.com/watch?v=PE4gwstWhmc
Operating At 100,000 duh nuh nuhs per secondhttp://highscalability.com/blog/2013/11/4/espns-architecture-at-scale-operating-at-100000-duh-nuh-nuhs.html
Google architecturehttp://highscalability.com/google-architecture
14 million users, terabytes of photoshttp://highscalability.com/blog/2011/12/6/instagram-architecture-14-million-users-terabytes-of-photos.html
What powers Instagramhttp://instagram-engineering.tumblr.com/post/13649370142/what-powers-instagram-hundreds-of-instances
Justin.Tv's live video broadcasting architecturehttp://highscalability.com/blog/2010/3/16/justintvs-live-video-broadcasting-architecture.html
Scaling memcached at Facebookhttps://cs.uwaterloo.ca/~brecht/courses/854-Emerging-2014/readings/key-value/fb-memcached-nsdi-2013.pdf
TAO: Facebook’s distributed data store for the social graphhttps://cs.uwaterloo.ca/~brecht/courses/854-Emerging-2014/readings/data-store/tao-facebook-distributed-datastore-atc-2013.pdf
Facebook’s photo storagehttps://www.usenix.org/legacy/event/osdi10/tech/full_papers/Beaver.pdf
How Facebook Live Streams To 800,000 Simultaneous Viewershttp://highscalability.com/blog/2016/6/27/how-facebook-live-streams-to-800000-simultaneous-viewers.html
Flickr architecturehttp://highscalability.com/flickr-architecture
From 0 to one million users in 6 weekshttp://highscalability.com/blog/2013/6/18/scaling-mailbox-from-0-to-one-million-users-in-6-weeks-and-1.html
A 360 Degree View Of The Entire Netflix Stackhttp://highscalability.com/blog/2015/11/9/a-360-degree-view-of-the-entire-netflix-stack.html
Netflix: What Happens When You Press Play?http://highscalability.com/blog/2017/12/11/netflix-what-happens-when-you-press-play.html
From 0 To 10s of billions of page views a monthhttp://highscalability.com/blog/2013/4/15/scaling-pinterest-from-0-to-10s-of-billions-of-page-views-a.html
18 million visitors, 10x growth, 12 employeeshttp://highscalability.com/blog/2012/5/21/pinterest-architecture-update-18-million-visitors-10x-growth.html
50 million monthly users and growinghttp://highscalability.com/blog/2010/9/21/playfishs-social-gaming-architecture-50-million-monthly-user.html
PlentyOfFish architecturehttp://highscalability.com/plentyoffish-architecture
How they handle 1.3 billion transactions a dayhttp://highscalability.com/blog/2013/9/23/salesforce-architecture-how-they-handle-13-billion-transacti.html
Stack Overflow architecturehttp://highscalability.com/blog/2009/8/5/stack-overflow-architecture.html
40M visitors, 200M dynamic page views, 30TB datahttp://highscalability.com/blog/2011/6/27/tripadvisor-architecture-40m-visitors-200m-dynamic-page-view.html
15 billion page views a monthhttp://highscalability.com/blog/2012/2/13/tumblr-architecture-15-billion-page-views-a-month-and-harder.html
Making Twitter 10000 percent fasterhttp://highscalability.com/scaling-twitter-making-twitter-10000-percent-faster
Storing 250 million tweets a day using MySQLhttp://highscalability.com/blog/2011/12/19/how-twitter-stores-250-million-tweets-a-day-using-mysql.html
150M active users, 300K QPS, a 22 MB/S firehosehttp://highscalability.com/blog/2013/7/8/the-architecture-twitter-uses-to-deal-with-150m-active-users.html
Timelines at scalehttps://www.infoq.com/presentations/Twitter-Timeline-Scalability
Big and small data at Twitterhttps://www.youtube.com/watch?v=5cKTP36HVgI
Operations at Twitter: scaling beyond 100 million usershttps://www.youtube.com/watch?v=z8LU0Cj6BOU
How Twitter Handles 3,000 Images Per Secondhttp://highscalability.com/blog/2016/4/20/how-twitter-handles-3000-images-per-second.html
How Uber scales their real-time market platformhttp://highscalability.com/blog/2015/9/14/how-uber-scales-their-real-time-market-platform.html
Lessons Learned From Scaling Uber To 2000 Engineers, 1000 Services, And 8000 Git Repositorieshttp://highscalability.com/blog/2016/10/12/lessons-learned-from-scaling-uber-to-2000-engineers-1000-ser.html
The WhatsApp architecture Facebook bought for $19 billionhttp://highscalability.com/blog/2014/2/26/the-whatsapp-architecture-facebook-bought-for-19-billion.html
YouTube scalabilityhttps://www.youtube.com/watch?v=w5WVu624fY8
YouTube architecturehttp://highscalability.com/youtube-architecture
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#company-engineering-blogs
Airbnb Engineeringhttp://nerds.airbnb.com/
Atlassian Developershttps://developer.atlassian.com/blog/
AWS Bloghttps://aws.amazon.com/blogs/aws/
Bitly Engineering Bloghttp://word.bitly.com/
Box Blogshttps://blog.box.com/blog/category/engineering
Cloudera Developer Bloghttp://blog.cloudera.com/
Dropbox Tech Bloghttps://tech.dropbox.com/
Engineering at Quorahttps://www.quora.com/q/quoraengineering
Ebay Tech Bloghttp://www.ebaytechblog.com/
Evernote Tech Bloghttps://blog.evernote.com/tech/
Etsy Code as Crafthttp://codeascraft.com/
Facebook Engineeringhttps://www.facebook.com/Engineering
Flickr Codehttp://code.flickr.net/
Foursquare Engineering Bloghttp://engineering.foursquare.com/
GitHub Engineering Bloghttps://github.blog/category/engineering
Google Research Bloghttp://googleresearch.blogspot.com/
Groupon Engineering Bloghttps://engineering.groupon.com/
Heroku Engineering Bloghttps://engineering.heroku.com/
Hubspot Engineering Bloghttp://product.hubspot.com/blog/topic/engineering
High Scalabilityhttp://highscalability.com/
Instagram Engineeringhttp://instagram-engineering.tumblr.com/
Intel Software Bloghttps://software.intel.com/en-us/blogs/
Jane Street Tech Bloghttps://blogs.janestreet.com/category/ocaml/
LinkedIn Engineeringhttp://engineering.linkedin.com/blog
Microsoft Engineeringhttps://engineering.microsoft.com/
Microsoft Python Engineeringhttps://blogs.msdn.microsoft.com/pythonengineering/
Netflix Tech Bloghttp://techblog.netflix.com/
Paypal Developer Bloghttps://medium.com/paypal-engineering
Pinterest Engineering Bloghttps://medium.com/@Pinterest_Engineering
Reddit Bloghttp://www.redditblog.com/
Salesforce Engineering Bloghttps://developer.salesforce.com/blogs/engineering/
Slack Engineering Bloghttps://slack.engineering/
Spotify Labshttps://labs.spotify.com/
Twilio Engineering Bloghttp://www.twilio.com/engineering
Twitter Engineeringhttps://blog.twitter.com/engineering/
Uber Engineering Bloghttp://eng.uber.com/
Yahoo Engineering Bloghttp://yahooeng.tumblr.com/
Yelp Engineering Bloghttp://engineeringblog.yelp.com/
Zynga Engineering Bloghttps://www.zynga.com/blogs/engineering
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#sources-and-further-reading-15
kilimchoi/engineering-blogshttps://github.com/kilimchoi/engineering-blogs
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#under-development
Contributehttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#contributing
Contributehttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#contributing
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#credits
Hired in techhttp://www.hiredintech.com/system-design/the-system-design-process/
Cracking the coding interviewhttps://www.amazon.com/dp/0984782850/
High scalabilityhttp://highscalability.com/
checkcheckzz/system-design-interviewhttps://github.com/checkcheckzz/system-design-interview
shashank88/system_designhttps://github.com/shashank88/system_design
mmcgrana/services-engineeringhttps://github.com/mmcgrana/services-engineering
System design cheat sheethttps://gist.github.com/vasanthk/485d1c25737e8e72759f
A distributed systems reading listhttp://dancres.github.io/Pages/
Cracking the system design interviewhttp://www.puncsky.com/blog/2016-02-13-crack-the-system-design-interview
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#contact-info
GitHub pagehttps://github.com/donnemartin
https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#license
Readme https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#readme-ov-file
View license https://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer#License-1-ov-file
Please reload this pagehttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer
Activityhttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/activity
Custom propertieshttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/custom-properties
0 starshttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/stargazers
0 watchinghttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/watchers
0 forkshttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/forks
Report repository https://patch-diff.githubusercontent.com/contact/report-content?content_url=https%3A%2F%2Fgithub.com%2FApressJavaCode%2Fsystem-design-primer&report=ApressJavaCode+%28user%29
Releaseshttps://patch-diff.githubusercontent.com/ApressJavaCode/system-design-primer/releases
Packages 0https://patch-diff.githubusercontent.com/orgs/ApressJavaCode/packages?repo_name=system-design-primer
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.