![Page 1: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/1.jpg)
serviceoriented
architecture
![Page 2: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/2.jpg)
![Page 3: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/3.jpg)
serviceoriented
architecture
![Page 4: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/4.jpg)
![Page 5: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/5.jpg)
![Page 6: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/6.jpg)
![Page 7: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/7.jpg)
Working memory
![Page 8: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/8.jpg)
![Page 9: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/9.jpg)
![Page 10: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/10.jpg)
![Page 11: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/11.jpg)
![Page 12: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/12.jpg)
![Page 13: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/13.jpg)
![Page 14: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/14.jpg)
Fight back!- Solid OO techniques- Refactoring- Paying back technical debt- Test driven development- Continuous integration
![Page 15: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/15.jpg)
Easy to change
![Page 16: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/16.jpg)
Service Oriented
Architecture
![Page 17: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/17.jpg)
SOABuild applications
out of smaller ones
![Page 18: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/18.jpg)
Services =
HTTP =
![Page 19: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/19.jpg)
REST+
Message queues
![Page 20: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/20.jpg)
REST
![Page 21: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/21.jpg)
Message queues
SQS, RabbitMQ, ActiveMQ, Resque, etc
![Page 22: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/22.jpg)
OO principles - Single responsibility- Loose coupling- Cohesion- Encapsulation
![Page 23: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/23.jpg)
Real world?There are no rules
![Page 24: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/24.jpg)
auth
users
front-end
blog
socialreviews
recommendations
stock shippingpayments
tagsbaskets
history
![Page 25: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/25.jpg)
Online record shop
![Page 26: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/26.jpg)
![Page 27: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/27.jpg)
Extract functionality
intoservices
![Page 28: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/28.jpg)
![Page 29: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/29.jpg)
Reviews
Recommendations
Product info
Stock levels
![Page 30: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/30.jpg)
reviews-service
REST + JSON
![Page 31: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/31.jpg)
reviews-serviceGET /reviews/idPOST /reviewsPATCH /reviews/idDELETE /reviews/id
![Page 32: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/32.jpg)
reviews-serviceGET /reviews/id
{ json }
![Page 33: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/33.jpg)
reviews-servicePOST /reviews
{ json }
![Page 34: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/34.jpg)
reviews-service
{ json }
BONUS: Client-side rendering!
![Page 35: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/35.jpg)
reviews-serviceapplication/json
text/html
![Page 36: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/36.jpg)
Isolated
![Page 37: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/37.jpg)
Reusable
![Page 38: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/38.jpg)
Interoperable
![Page 39: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/39.jpg)
Agile
![Page 40: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/40.jpg)
Scalable
![Page 41: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/41.jpg)
Robust
![Page 42: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/42.jpg)
Shipping
![Page 43: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/43.jpg)
shipping-service
![Page 44: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/44.jpg)
Shop Shipping-service
Message queue
{ order details }
![Page 45: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/45.jpg)
/api/shippings
![Page 46: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/46.jpg)
IsolatedReusable
InteroperableAgile
ScalableRobust
![Page 47: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/47.jpg)
![Page 48: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/48.jpg)
hydra.ioAPI for building &
profiting from digital image apps
![Page 49: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/49.jpg)
/uploads /products /orders/artworks
imageprocessing
hydra.io
![Page 50: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/50.jpg)
/uploads /products /orders/artworks
imageprocessing
hydra.io
![Page 51: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/51.jpg)
/uploads /products /orders/artworks
imageprocessing MongoDB MongoDB MongoDB
S3
hydra.io
![Page 52: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/52.jpg)
/uploads /products /orders/artworks
imageprocessing MongoDB MongoDB MongoDB
S3
hydra.io
![Page 53: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/53.jpg)
/uploads /products /orders/artworks
imageprocessing MongoDB MongoDB MongoDB
S3
message queue (resque)
hydra.io
![Page 54: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/54.jpg)
/uploads /products /orders/artworks
imageprocessing MongoDB MongoDB MongoDB
S3
message queue (resque)
hydra.io
![Page 55: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/55.jpg)
/uploads /products /orders/artworks
imageprocessing MongoDB MongoDB MongoDB
S3
message queue (resque)
hydra.io
![Page 56: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/56.jpg)
/uploads /products /orders/artworks
imageprocessing MongoDB MongoDB MongoDB
S3
message queue (resque)
hydra.io
![Page 57: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/57.jpg)
api.hydra.io proxy (HAProxy)api.hydra.io proxy (HAProxy)api.hydra.io proxy (HAProxy)api.hydra.io proxy (HAProxy)
/uploads /products /orders/artworks
imageprocessing MongoDB MongoDB MongoDB
S3
message queue (resque)
hydra.io
![Page 58: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/58.jpg)
api.hydra.io proxy (HAProxy)api.hydra.io proxy (HAProxy)api.hydra.io proxy (HAProxy)api.hydra.io proxy (HAProxy)
/uploads /products /orders/artworks
imageprocessing MongoDB MongoDB MongoDB
S3
message queue (resque)
![Page 59: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/59.jpg)
admin tools
api.hydra.io proxy (HAProxy)api.hydra.io proxy (HAProxy)api.hydra.io proxy (HAProxy)api.hydra.io proxy (HAProxy)
/uploads /products /orders/artworks
imageprocessing MongoDB MongoDB MongoDB
S3
message queue (resque)
![Page 60: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/60.jpg)
admin tools
api.hydra.io proxy (HAProxy)api.hydra.io proxy (HAProxy)api.hydra.io proxy (HAProxy)api.hydra.io proxy (HAProxy)
/uploads /products /orders/artworks
imageprocessing MongoDB MongoDB MongoDB
S3
message queue (resque)
![Page 61: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/61.jpg)
admin tools
backbone.js
hydra gem
api.hydra.io proxy (HAProxy)api.hydra.io proxy (HAProxy)api.hydra.io proxy (HAProxy)api.hydra.io proxy (HAProxy)
/uploads /products /orders/artworks
imageprocessing MongoDB MongoDB MongoDB
S3
message queue (resque)
![Page 62: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/62.jpg)
Small, sharp tools
![Page 63: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/63.jpg)
SOA is Lego
for developers
![Page 64: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/64.jpg)
Change is easyChange is hard
![Page 65: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/65.jpg)
PrefactoringDraw pictures &
simplify
![Page 66: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/66.jpg)
When to extract into services?Mature functionality
![Page 67: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/67.jpg)
EnvironmentsStaging
![Page 69: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/69.jpg)
Caching at every layer
Performance
![Page 70: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/70.jpg)
- Test in isolation- Integration tests
Testing
![Page 71: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/71.jpg)
Everything
Automate
![Page 72: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/72.jpg)
Warning!
Polyglot?
![Page 73: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/73.jpg)
Reuse & Consistency
![Page 74: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/74.jpg)
Nooo!
Centralised Database
![Page 75: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/75.jpg)
Keep checking the big picture
![Page 76: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/76.jpg)
/api/v2/gorillas
Versioning
![Page 77: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/77.jpg)
Parallel HTTP requests
![Page 78: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/78.jpg)
Small steps
![Page 79: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/79.jpg)
Conclusions
![Page 80: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/80.jpg)
1. Discipline pays
![Page 81: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/81.jpg)
2. Minimise coupling
![Page 82: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/82.jpg)
3. Small services
![Page 83: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/83.jpg)
4. Reduce complexity
![Page 84: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/84.jpg)
5. Check the big picture
![Page 85: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/85.jpg)
START SMALLSTAY SMALL
![Page 86: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/86.jpg)
The future
![Page 87: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/87.jpg)
![Page 88: Service Oriented Architecture Vs Monolithasaurus](https://reader033.vdocument.in/reader033/viewer/2022050920/54be75084a79591e7f8b45b5/html5/thumbnails/88.jpg)