Design patterns in distributed system
-
Upload
tom-huynh -
Category
Engineering
-
view
81 -
download
2
Transcript of Design patterns in distributed system
![Page 2: Design patterns in distributed system](https://reader034.fdocuments.net/reader034/viewer/2022042619/586fdc041a28ab18428b635b/html5/thumbnails/2.jpg)
Agenda
O What is distributed system?
O CAP theorem
O Fallacies of Distributed system
O Some distributed design problems and solutions
O CQRS & Event Sourcing
O Enterprise Service Bus
O Publisher/Subscriber pattern
O Demo pub/sub pattern in AngularJS SPA
O QA
![Page 3: Design patterns in distributed system](https://reader034.fdocuments.net/reader034/viewer/2022042619/586fdc041a28ab18428b635b/html5/thumbnails/3.jpg)
What is Distributed System?
N1 N2
N3 N4
LAN/WAN Fiber, cable, satellite, etc
![Page 4: Design patterns in distributed system](https://reader034.fdocuments.net/reader034/viewer/2022042619/586fdc041a28ab18428b635b/html5/thumbnails/4.jpg)
CAP theorem
O Consistency
O Availability
O Partition Tolerance
1
4
2
3
Can have ONLY maximum 2 promises at same time
![Page 5: Design patterns in distributed system](https://reader034.fdocuments.net/reader034/viewer/2022042619/586fdc041a28ab18428b635b/html5/thumbnails/5.jpg)
CAP theorem - Proof
1 2
![Page 6: Design patterns in distributed system](https://reader034.fdocuments.net/reader034/viewer/2022042619/586fdc041a28ab18428b635b/html5/thumbnails/6.jpg)
Fallacies of Distributed system
O Network is reliable.
O Latency is zero.
O Bandwidth in infinite.
O Network is secure.
O Topology does not change.
O There is one administrator.
O Transport cost is zero.
O Network is homogeneous.
![Page 7: Design patterns in distributed system](https://reader034.fdocuments.net/reader034/viewer/2022042619/586fdc041a28ab18428b635b/html5/thumbnails/7.jpg)
CAP Theorem - Fallacies
O Network not reliable
O Latency is zero
O Bandwidth is infinite
O Network is secure
O Topology doesn’t change
O 1 administrator
O Transport cost is zero
O Network is homogeneous
O Consistency
O Availability
O Partition Tolerance
![Page 8: Design patterns in distributed system](https://reader034.fdocuments.net/reader034/viewer/2022042619/586fdc041a28ab18428b635b/html5/thumbnails/8.jpg)
CAP Theorem - Fallacies
![Page 9: Design patterns in distributed system](https://reader034.fdocuments.net/reader034/viewer/2022042619/586fdc041a28ab18428b635b/html5/thumbnails/9.jpg)
Agenda
O What is distributed system?
O CAP theorem
O Fallacies of Distributed system
O Some distributed design problems and solutions
O CQRS & Event Sourcing
O Enterprise Service Bus
O Publisher/Subscriber pattern
O Demo pub/sub pattern in AngularJS SPA
O QA
![Page 10: Design patterns in distributed system](https://reader034.fdocuments.net/reader034/viewer/2022042619/586fdc041a28ab18428b635b/html5/thumbnails/10.jpg)
CQRS
O A pattern
O Not an architecture
O Not an architectural style
O Not a principle
O Command Query Responsibility Segregation
O Domain applicable
![Page 11: Design patterns in distributed system](https://reader034.fdocuments.net/reader034/viewer/2022042619/586fdc041a28ab18428b635b/html5/thumbnails/11.jpg)
CQRS - Durability (Cont.)
![Page 12: Design patterns in distributed system](https://reader034.fdocuments.net/reader034/viewer/2022042619/586fdc041a28ab18428b635b/html5/thumbnails/12.jpg)
CQRS - Scaling (Cont.)
![Page 13: Design patterns in distributed system](https://reader034.fdocuments.net/reader034/viewer/2022042619/586fdc041a28ab18428b635b/html5/thumbnails/13.jpg)
Event Sourcing
![Page 14: Design patterns in distributed system](https://reader034.fdocuments.net/reader034/viewer/2022042619/586fdc041a28ab18428b635b/html5/thumbnails/14.jpg)
Enterprise Service Bus
![Page 15: Design patterns in distributed system](https://reader034.fdocuments.net/reader034/viewer/2022042619/586fdc041a28ab18428b635b/html5/thumbnails/15.jpg)
ESB – 2 kinds
O Decentralized
O Independently configurable services
O Collaboration among teams
O Services make all decisions
O NServiceBus
O MassTransit
O Rhino Service Bus
O BrokeredO Single point of config
O Single governing body
O Middleware makes some decisions
O TIBCO
O BizTalk
O Web Sphere
![Page 16: Design patterns in distributed system](https://reader034.fdocuments.net/reader034/viewer/2022042619/586fdc041a28ab18428b635b/html5/thumbnails/16.jpg)
Publisher/Subscriber pattern
O Problem:
O How an application send messages to other applications that are interested in receiving the messages without knowing the identities of the receivers?
O Tight coupling of sender and receiver applications
O Solution: P/SSender
Receiver 2
Receiver 1
![Page 17: Design patterns in distributed system](https://reader034.fdocuments.net/reader034/viewer/2022042619/586fdc041a28ab18428b635b/html5/thumbnails/17.jpg)
Publisher/Subscriber pattern
Publisher
Event 1
Event 2
SubScriber1
SubScriber1
SubScriber1
![Page 18: Design patterns in distributed system](https://reader034.fdocuments.net/reader034/viewer/2022042619/586fdc041a28ab18428b635b/html5/thumbnails/18.jpg)
Pub/sub demo
O AngularJS
O Controllers
Root scope
Scope 2Scope 1
Scope 4Scope 3
![Page 19: Design patterns in distributed system](https://reader034.fdocuments.net/reader034/viewer/2022042619/586fdc041a28ab18428b635b/html5/thumbnails/19.jpg)
Reference
O Farm Credit Service of America knowledge base.
O Presentations of Michael L Perry, Dino Esposito, Greg Young, etc.
![Page 20: Design patterns in distributed system](https://reader034.fdocuments.net/reader034/viewer/2022042619/586fdc041a28ab18428b635b/html5/thumbnails/20.jpg)
Q&A