![Page 1: Design Patterns for Scalable APIs based on Docker](https://reader030.vdocuments.mx/reader030/viewer/2022021507/58f293681a28ab0a558b459d/html5/thumbnails/1.jpg)
Design Patterns for Scalable APIs Based on Docker
@stoitsev
![Page 2: Design Patterns for Scalable APIs based on Docker](https://reader030.vdocuments.mx/reader030/viewer/2022021507/58f293681a28ab0a558b459d/html5/thumbnails/2.jpg)
docker run ufaldsg/cloud-asr-api
![Page 4: Design Patterns for Scalable APIs based on Docker](https://reader030.vdocuments.mx/reader030/viewer/2022021507/58f293681a28ab0a558b459d/html5/thumbnails/4.jpg)
Class
Object
Image
Container
![Page 5: Design Patterns for Scalable APIs based on Docker](https://reader030.vdocuments.mx/reader030/viewer/2022021507/58f293681a28ab0a558b459d/html5/thumbnails/5.jpg)
![Page 6: Design Patterns for Scalable APIs based on Docker](https://reader030.vdocuments.mx/reader030/viewer/2022021507/58f293681a28ab0a558b459d/html5/thumbnails/6.jpg)
Map/Reduce
![Page 7: Design Patterns for Scalable APIs based on Docker](https://reader030.vdocuments.mx/reader030/viewer/2022021507/58f293681a28ab0a558b459d/html5/thumbnails/7.jpg)
https://www.usenix.org/node/196347
![Page 8: Design Patterns for Scalable APIs based on Docker](https://reader030.vdocuments.mx/reader030/viewer/2022021507/58f293681a28ab0a558b459d/html5/thumbnails/8.jpg)
Single-node, multi-container Application patterns
![Page 9: Design Patterns for Scalable APIs based on Docker](https://reader030.vdocuments.mx/reader030/viewer/2022021507/58f293681a28ab0a558b459d/html5/thumbnails/9.jpg)
Sidecar
Web server Log server
File System
![Page 10: Design Patterns for Scalable APIs based on Docker](https://reader030.vdocuments.mx/reader030/viewer/2022021507/58f293681a28ab0a558b459d/html5/thumbnails/10.jpg)
Sidecar
Application Instance Translations Downloader
File System
![Page 11: Design Patterns for Scalable APIs based on Docker](https://reader030.vdocuments.mx/reader030/viewer/2022021507/58f293681a28ab0a558b459d/html5/thumbnails/11.jpg)
Resource Isolation
Separate development
Easy and flexible composition
Failure containment
![Page 12: Design Patterns for Scalable APIs based on Docker](https://reader030.vdocuments.mx/reader030/viewer/2022021507/58f293681a28ab0a558b459d/html5/thumbnails/12.jpg)
Ambassador
Web Server Ambasador
External App
External App
External App
![Page 13: Design Patterns for Scalable APIs based on Docker](https://reader030.vdocuments.mx/reader030/viewer/2022021507/58f293681a28ab0a558b459d/html5/thumbnails/13.jpg)
Ambassador
Application Hyperbahn Instance
Hyperbahn Instance
Hyperbahn Instance
Hyperbahn Instance
https://github.com/uber-archive/hyperbahn
![Page 14: Design Patterns for Scalable APIs based on Docker](https://reader030.vdocuments.mx/reader030/viewer/2022021507/58f293681a28ab0a558b459d/html5/thumbnails/14.jpg)
Easy to reason about
Easy to test
Reusable
![Page 15: Design Patterns for Scalable APIs based on Docker](https://reader030.vdocuments.mx/reader030/viewer/2022021507/58f293681a28ab0a558b459d/html5/thumbnails/15.jpg)
Adapter
Application Monitoring Adapter Centralized monitoring system
![Page 16: Design Patterns for Scalable APIs based on Docker](https://reader030.vdocuments.mx/reader030/viewer/2022021507/58f293681a28ab0a558b459d/html5/thumbnails/16.jpg)
Multi-node application patterns
![Page 17: Design Patterns for Scalable APIs based on Docker](https://reader030.vdocuments.mx/reader030/viewer/2022021507/58f293681a28ab0a558b459d/html5/thumbnails/17.jpg)
Leader election
AppLeader election
container
AppLeader election
container
AppLeader election
container
AppLeader election
container
![Page 18: Design Patterns for Scalable APIs based on Docker](https://reader030.vdocuments.mx/reader030/viewer/2022021507/58f293681a28ab0a558b459d/html5/thumbnails/18.jpg)
Simplifies the problem
Easy testing
![Page 19: Design Patterns for Scalable APIs based on Docker](https://reader030.vdocuments.mx/reader030/viewer/2022021507/58f293681a28ab0a558b459d/html5/thumbnails/19.jpg)
Work queue
WorkerWork Execution
WorkerWork Execution
Work Coordinator
![Page 20: Design Patterns for Scalable APIs based on Docker](https://reader030.vdocuments.mx/reader030/viewer/2022021507/58f293681a28ab0a558b459d/html5/thumbnails/20.jpg)
Simplification
![Page 21: Design Patterns for Scalable APIs based on Docker](https://reader030.vdocuments.mx/reader030/viewer/2022021507/58f293681a28ab0a558b459d/html5/thumbnails/21.jpg)
Scatter/gather
MergeExecution
Work Execution
Work Execution
Root Work Execution
![Page 22: Design Patterns for Scalable APIs based on Docker](https://reader030.vdocuments.mx/reader030/viewer/2022021507/58f293681a28ab0a558b459d/html5/thumbnails/22.jpg)
![Page 23: Design Patterns for Scalable APIs based on Docker](https://reader030.vdocuments.mx/reader030/viewer/2022021507/58f293681a28ab0a558b459d/html5/thumbnails/23.jpg)
Idempotent
Pure
Composable
![Page 25: Design Patterns for Scalable APIs based on Docker](https://reader030.vdocuments.mx/reader030/viewer/2022021507/58f293681a28ab0a558b459d/html5/thumbnails/25.jpg)
Thanks