Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Un monolith microservice ready – Orange Dev Tes...
Search
Arnaud LEMAIRE
October 16, 2018
Programming
310
8
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Un monolith microservice ready – Orange Dev Test Days 2018
Arnaud LEMAIRE
October 16, 2018
More Decks by Arnaud LEMAIRE
See All by Arnaud LEMAIRE
From code to consequences — Tech Pour l'Emploi #3
lilobase
0
49
From Code to Consequences – AlpesCraft 2025
lilobase
0
670
Scaling in Three Dimensions – Data In Motion Paris 2024
lilobase
0
100
Intervention Michelin DORD
lilobase
0
180
The strategies behind ddd – AdeoDevSummit 2022
lilobase
6
1.5k
Let's reset Agile at Scale — Lean&Agile day Michelin 2022
lilobase
2
420
Sunday, retour d’expérience sur la construction d’une entreprise attractive pour les techs – Tech.rocks 2021
lilobase
1
240
Le projet legacy, quelles stratégies pour s'en sortir ? – Software Crafts·wo·manship Rennes juin 2021
lilobase
4
650
Réconcilier architecture logicielle & problématiques métiers : une introduction au Domain Driven Design – Blend Web Mix 2021
lilobase
5
1.2k
Other Decks in Programming
See All in Programming
AI に Inclusive UI を書かせよう — Design Rules Skill で Compose UI を作り直す
theoriatec2024
1
490
スマートフォンでモールス信号を送受信する 〜スマートフォンのLEDとカメラで作る光通信の設計と実装〜
atsuki_seo
0
110
スマート反転とウェブアクセシビリティ
camiha
0
210
AIエージェント時代のコードレビューを設計する
nogu66
6
2.7k
[GoCon2026] When Goroutines Are Not Enough: Runtime Locality in High-Throughput Go
takehaya
6
2.2k
WebRTC映像をAirPlayに対応させる挑戦.pdf
monolithic_adam
0
190
GKE で Pod の見方を変えたら、スケールアウト時の挙動を真に捉えられた話
stkk
0
120
Heart of Swift Concurrency
koher
0
650
JPUG勉強会 OSSデータベースの内部構造を理解しよう(第2回)
oga5
0
220
【高い買い物LT会】初任給で話題の国産フィジカルAIを買った話
akagami
PRO
0
160
Webの地図
yosuke_furukawa
PRO
6
4.4k
海上で動くGoサーバー: goroutineとchannelでさばく航行データストリーム
atsuki_seo
0
450
Featured
See All Featured
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.2k
Leo the Paperboy
mayatellez
10
2.3k
Writing Fast Ruby
sferik
630
63k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6.1k
Code Review Best Practice
trishagee
74
20k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
720
Fashionably flexible responsive web design (full day workshop)
malarkey
409
67k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
380
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.4k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
480
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.4k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
232
55k
Transcript
Monolith Microservices ready™ @Lilobase
Complexity is non-linear Complexity System size
Distributed doghouse
-Simon Brown « If you can’t build a monolith, what
makes you think micro-services are the answer ? »
Monolith Microservices -Alvaro Sanchez
-Melvin Conway « organizations which design systems ... are constrained
to produce designs which are copies of the communication structures of these organizations »
-Simon Brown
-Simon Brown
-Simon Brown 1 2
The problem has never been the monolith, but having a
single coupled model
Multiple models lives in your application Invoice Catalog Payment Product
Product Product This is not the same product
The primary coupling in software architecture is when concepts from
separate contexts are entangled
We usually don’t get our models right on the first
try. This is where having a single code base & deployment unit helps with the requested refactoring
Let’s create some hard boundaries
Domain domain interface concrete implementation of the domain interface technical
collaborator
Service A API Service B
Internal API Service A Service B External API Anti-Corruption Layer
(Belong to the infrastructure)
Facade Parent Injector S1 S2
Facade Parent Injector S1 HTTP connector
« Two micro services and their shared database » -Mathias
Verraes
Messages brokers are also datasources
-Cyrille Dupuydauby « Years of fight against ‘DB as a
MoM’ anti- pattern have finally paid off: I am now fighting against ‘MoM as a DB’ anti-pattern. »
Events are not created equal Invoice Catalog Payment Inventory
What about processes
Event or Command driven ? Agent Acteur
Orchestration or choreography ? Orchestration Choreography
Exemple of an event driven orchestrated pattern : the macdonald’s
pattern Counter Ice Cream Hamburgers Salads New Order —— —— —— New Order —— —— —— New Order —— —— ——
Counter Ice Cream Hamburgers Salads
Counter Ice Cream Hamburgers Salads Each time we receive an
item, we check if the order is complete New Order —— —— ——
A time bomb for the optimists
-Graham Lea « They can be hard to see, and
they can sink your app »
Dependencies, even more chances to get failures
Fault tolerance • Rate-limiter • Automatic retry with exponential backoff
• Response caching • BulkHead pattern • Circuit-breaker • Load Balancing Hystrix, Resilience4j
The micro services iceberg
Distributed transaction
Saga T1 T2 T3
Saga T1 T2 T3 C1 C3
Saga T1 T2 T3 T2 Idempotence
PC PC PC Two phases commits T T T
UI Driven Consistency
-Simon Brown
If you cannot deploy independently your services, you don’t have
a micro-service architecture
Going further • Applying the Saga Pattern • Caitie McCaffrey
• Distributed Transactions: The Icebergs of Microservices • Graham Lea • Application Resilience Engineering & Operations at Netflix • Ben Christensen • arpinum/alexandria-api