SlideShare a Scribd company logo
How to design a distributed
         system
         By Jinglun Li
Agenda
• A framework of designing distributed system
• Two critical challenges
Requirements
                           Functionality                   Quality                         Constraint
Business Requirements      A vertical search engine        Release in three months         10 machines
                           which gears the market. (e.g.   …                               …
                           a music search engine)




Users Requirements         1.   Show query                 1.   Response quickly.
                                suggestions when user      2.   Search records are good.
                                types words.               …
                           2.   Show records which
                                user are most likely
                                searching for.
                           …




Development Requirements                                   1.   Flexibility                Resource:
                                                           2.   Maintainable               One UED
                                                           3.   Scalable                   One Frontend Developers
                                                           …                               Three Backend Developers
From Mud to Structure
NEAT
Layer
Pipe and Filter
How to design a distributed system
Logical View
Logical View (cont.)
4 + 1 Views
4 + 1 Views (cont.)
Development View
Development View (cont.)
• Src/
   –   Php/
   –   Search manager/
   –   Search/
   –   Index/
   –   …
• Util/
   – Log/
   – String/
   – Persistence/
• …
Process View
Deployment View
Review
Challenges
Distribution Infrastructure
• Broker
• Message
• Publisher-Subscriber
Broker
Broker (Server Side)
Messaging
Publisher-Subscriber
Models Summary
Concurrency
•   Half-Sync/Half-Async
•   Leader/Followers
•   Active Object
•   Monitor Objector
Half-Sync/Half-Async
Leader/Follower
Active Object
Monitor Object
Reference
1.   Pattern-Oriented Software Architecture-Volume 1 A System of Patterns
     1996
2.   Pattern-Oriented Software Architecture-Volume 3 Patterns for Resource
     Management
3.   Pattern-Oriented Software Architecture-Volume 4 A Pattern Language
     for Distributed Computing May 2007
4.   Pattern-Oriented Software Architecture-Volume 5 On Patterns and
     Pattern Languages 2007
5.   SOA in Practice The art of Distributed System Design 2008
6.   Domain-Driven Design Trackling Complexity in The Heart of Software
     2010
7.   The 4+1 View Model of Architecture
8.   Applying UML and Patterns An Introduction to Object-Oriented Analysis
     and Design and Iterative Development 2006
9.   一线架构师 2009
Thanks!
Backup
How to design a distributed system

More Related Content

PPT
Distributed network
PPTX
PPT
middleware in embedded systems
PPTX
Software architectural patterns - A Quick Understanding Guide
PPTX
Introductio to Docker and usage in HPC applications
PPT
Introduction to distributed system
PPT
Restricted routing infrastructures PPT
Distributed network
middleware in embedded systems
Software architectural patterns - A Quick Understanding Guide
Introductio to Docker and usage in HPC applications
Introduction to distributed system
Restricted routing infrastructures PPT

What's hot (20)

PPT
System models 2 in distributed system
PPTX
Distributed information system
PPT
Cloud computing
PPTX
Distributed computing
PPTX
Chap 2 virtulizatin
PPTX
Layered architecture style
PDF
The Internet of Simulations and the agile development of Cyber-physical systems
PPTX
Introduction to Distributed System
PPT
middleware
PDF
Microservice
PPT
Components of client server application
PPTX
Clientserver Presentation
PDF
Microservice Architecture
DOC
Distributed Computing Report
PPTX
Distributed computing
PPTX
Introduction to Cloud Computing
PPTX
Alex Thissen (Xpirit) - Een verschuiving in architectuur: op weg naar microse...
PPTX
Distributed Systems - Information Technology
PPTX
Distributed computing environment
PPTX
Introductorytocomputing
System models 2 in distributed system
Distributed information system
Cloud computing
Distributed computing
Chap 2 virtulizatin
Layered architecture style
The Internet of Simulations and the agile development of Cyber-physical systems
Introduction to Distributed System
middleware
Microservice
Components of client server application
Clientserver Presentation
Microservice Architecture
Distributed Computing Report
Distributed computing
Introduction to Cloud Computing
Alex Thissen (Xpirit) - Een verschuiving in architectuur: op weg naar microse...
Distributed Systems - Information Technology
Distributed computing environment
Introductorytocomputing
Ad

Viewers also liked (9)

PDF
Design patterns in distributed system
PDF
The New Open Distributed Application Architecture
PDF
Scalable Distributed System Architecture
PDF
Architectural Patterns of Resilient Distributed Systems
PPTX
Applications of Distributed Systems
PPT
Distributed Systems Architecture in Software Engineering SE11
DOCX
Distributed System
PPTX
Distributed Systems Real Life Applications
PPTX
Patterns for distributed systems
Design patterns in distributed system
The New Open Distributed Application Architecture
Scalable Distributed System Architecture
Architectural Patterns of Resilient Distributed Systems
Applications of Distributed Systems
Distributed Systems Architecture in Software Engineering SE11
Distributed System
Distributed Systems Real Life Applications
Patterns for distributed systems
Ad

Similar to How to design a distributed system (20)

PDF
LSP ( Logic Score Preference ) _ Rajan_Dhabalia_San Francisco State University
PPT
Unit 5
PDF
droidcon 2012: Merodroid – A Search-Engine for Android Software Components, M...
PPTX
Introduction of vertical crawler
PPTX
Profiling Multicore Systems to Maximize Core Utilization
PPTX
Building a real time, solr-powered recommendation engine
PDF
Improve Android System Component Performance
PDF
4 - Architetture Software - Architecture Portfolio
PPTX
Discovery Systems Used in Academic Libraries Projects & Case Study
PPTX
CH01-1Object-Oriented Systems Development.pptx
PPTX
Software_Engineering_Presentation_Updated.pptx
PPTX
JavaBeer_Clean architecture_update.v2.pptx
PDF
26 developer tool for creating accessible guis in android mobile os upm
PPT
unit3kiran.pptunit-3-Interactions&Usecases.pptx
PPTX
DELDroid: Determination & Enforcement of Least Privilege Architecture in AnDroid
PDF
The Final Frontier
PPTX
Search-Based Serving Architecture of Embeddings-Based Recommendations (RecSys...
PPTX
The Role of the Software Architect
PPT
Softwareproject planning
PPT
Architectural design
LSP ( Logic Score Preference ) _ Rajan_Dhabalia_San Francisco State University
Unit 5
droidcon 2012: Merodroid – A Search-Engine for Android Software Components, M...
Introduction of vertical crawler
Profiling Multicore Systems to Maximize Core Utilization
Building a real time, solr-powered recommendation engine
Improve Android System Component Performance
4 - Architetture Software - Architecture Portfolio
Discovery Systems Used in Academic Libraries Projects & Case Study
CH01-1Object-Oriented Systems Development.pptx
Software_Engineering_Presentation_Updated.pptx
JavaBeer_Clean architecture_update.v2.pptx
26 developer tool for creating accessible guis in android mobile os upm
unit3kiran.pptunit-3-Interactions&Usecases.pptx
DELDroid: Determination & Enforcement of Least Privilege Architecture in AnDroid
The Final Frontier
Search-Based Serving Architecture of Embeddings-Based Recommendations (RecSys...
The Role of the Software Architect
Softwareproject planning
Architectural design

Recently uploaded (20)

PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
Spectral efficient network and resource selection model in 5G networks
PPTX
Spectroscopy.pptx food analysis technology
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
cuic standard and advanced reporting.pdf
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPT
Teaching material agriculture food technology
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Machine learning based COVID-19 study performance prediction
PPTX
Big Data Technologies - Introduction.pptx
PDF
Electronic commerce courselecture one. Pdf
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Approach and Philosophy of On baking technology
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Dropbox Q2 2025 Financial Results & Investor Presentation
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Spectral efficient network and resource selection model in 5G networks
Spectroscopy.pptx food analysis technology
Mobile App Security Testing_ A Comprehensive Guide.pdf
cuic standard and advanced reporting.pdf
“AI and Expert System Decision Support & Business Intelligence Systems”
Programs and apps: productivity, graphics, security and other tools
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Agricultural_Statistics_at_a_Glance_2022_0.pdf
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Teaching material agriculture food technology
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Diabetes mellitus diagnosis method based random forest with bat algorithm
Machine learning based COVID-19 study performance prediction
Big Data Technologies - Introduction.pptx
Electronic commerce courselecture one. Pdf
20250228 LYD VKU AI Blended-Learning.pptx
Approach and Philosophy of On baking technology

How to design a distributed system

Editor's Notes

  • #6: Architectural patternsLayers (e.g. OSI 7 layers model)Pipes and Filters (e.g. Compiler)Blackboard (Be useful for problems for which no deterministic solution strategies are known. E.g. Speech recognizition.)Design patternsIdioms