Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Service Oriented Architecture Vs Monolithasaurus
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Joe Roberts
June 06, 2013
Programming
5
180
Service Oriented Architecture Vs Monolithasaurus
SOA
Joe Roberts
June 06, 2013
Tweet
Share
More Decks by Joe Roberts
See All by Joe Roberts
Discovering Go
zefer
0
83
Other Decks in Programming
See All in Programming
AgentCoreとHuman in the Loop
har1101
5
230
Apache Iceberg V3 and migration to V3
tomtanaka
0
160
humanlayerのブログから学ぶ、良いCLAUDE.mdの書き方
tsukamoto1783
0
190
AIエージェント、”どう作るか”で差は出るか? / AI Agents: Does the "How" Make a Difference?
rkaga
4
2k
AIで開発はどれくらい加速したのか?AIエージェントによるコード生成を、現場の評価と研究開発の評価の両面からdeep diveしてみる
daisuketakeda
1
2.5k
生成AIを使ったコードレビューで定性的に品質カバー
chiilog
1
270
AI によるインシデント初動調査の自動化を行う AI インシデントコマンダーを作った話
azukiazusa1
1
730
Grafana:建立系統全知視角的捷徑
blueswen
0
330
Lambda のコードストレージ容量に気をつけましょう
tattwan718
0
130
プロダクトオーナーから見たSOC2 _SOC2ゆるミートアップ#2
kekekenta
0
210
React 19でつくる「気持ちいいUI」- 楽観的UIのすすめ
himorishige
11
7.4k
KIKI_MBSD Cybersecurity Challenges 2025
ikema
0
1.3k
Featured
See All Featured
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
64
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
53
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
120
From π to Pie charts
rasagy
0
120
The Pragmatic Product Professional
lauravandoore
37
7.1k
Context Engineering - Making Every Token Count
addyosmani
9
650
RailsConf 2023
tenderlove
30
1.3k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
49
Game over? The fight for quality and originality in the time of robots
wayneb77
1
120
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5.2k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
1.6k
WCS-LA-2024
lcolladotor
0
450
Transcript
service oriented architecture
None
service oriented architecture
None
None
None
Working memory
None
None
None
None
None
None
Fight back! - Solid OO techniques - Refactoring - Paying
back technical debt - Test driven development - Continuous integration
Easy to change
Service Oriented Architecture
SOA Build applications out of smaller ones
Services = HTTP =
REST + Message queues
REST
Message queues SQS, RabbitMQ, ActiveMQ, Resque, etc
OO principles - Single responsibility - Loose coupling - Cohesion
- Encapsulation
Real world? There are no rules
auth users front-end blog social reviews recommendations stock shipping payments
tags baskets history
Online record shop
None
Extract functionality into services
None
Reviews Recommendations Product info Stock levels
reviews-service REST + JSON
reviews-service GET /reviews/id POST /reviews PATCH /reviews/id DELETE /reviews/id
reviews-service GET /reviews/id { json }
reviews-service POST /reviews { json }
reviews-service { json } BONUS: Client-side rendering!
reviews-service application/json text/html
Isolated
Reusable
Interoperable
Agile
Scalable
Robust
Shipping
shipping-service
Shop Shipping-service Message queue { order details }
/api/shippings
Isolated Reusable Interoperable Agile Scalable Robust
None
hydra.io API for building & profiting from digital image apps
/uploads /products /orders /artworks image processing hydra.io
/uploads /products /orders /artworks image processing hydra.io
/uploads /products /orders /artworks image processing MongoDB MongoDB MongoDB S3
hydra.io
/uploads /products /orders /artworks image processing MongoDB MongoDB MongoDB S3
hydra.io
/uploads /products /orders /artworks image processing MongoDB MongoDB MongoDB S3
message queue (resque) hydra.io
/uploads /products /orders /artworks image processing MongoDB MongoDB MongoDB S3
message queue (resque) hydra.io
/uploads /products /orders /artworks image processing MongoDB MongoDB MongoDB S3
message queue (resque) hydra.io
/uploads /products /orders /artworks image processing MongoDB MongoDB MongoDB S3
message queue (resque) hydra.io
api.hydra.io proxy (HAProxy) api.hydra.io proxy (HAProxy) api.hydra.io proxy (HAProxy) api.hydra.io
proxy (HAProxy) /uploads /products /orders /artworks image processing MongoDB MongoDB MongoDB S3 message queue (resque) hydra.io
api.hydra.io proxy (HAProxy) api.hydra.io proxy (HAProxy) api.hydra.io proxy (HAProxy) api.hydra.io
proxy (HAProxy) /uploads /products /orders /artworks image processing MongoDB MongoDB MongoDB S3 message queue (resque)
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 image processing MongoDB MongoDB MongoDB S3 message queue (resque)
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 image processing MongoDB MongoDB MongoDB S3 message queue (resque)
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 image processing MongoDB MongoDB MongoDB S3 message queue (resque)
Small, sharp tools
SOA is Lego for developers
Change is easy Change is hard
Prefactoring Draw pictures & simplify
When to extract into services? Mature functionality
Environments Staging
http://12factor.net/ Deployments
Caching at every layer Performance
- Test in isolation - Integration tests Testing
Everything Automate
Warning! Polyglot?
Reuse & Consistency
Nooo! Centralised Database
Keep checking the big picture
/api/v2/gorillas Versioning
Parallel HTTP requests
Small steps
Conclusions
1. Discipline pays
2. Minimise coupling
3. Small services
4. Reduce complexity
5. Check the big picture
START SMALL STAY SMALL
The future
None
None