SlideShare a Scribd company logo
Split my monolith
The workshop
Photo : wikimedia
2022
Merci à nos sponsors
« Etoile »
« Flocon »
@florentpellet
LyonTechHub
@clem_bouillier @johan_alps
Split?
System resilience / Team scalability
Manage complexity
How?
We all have seen failed
modularisations.
Our hypothesis is that it's often about
the database
https://twitter.com/mathiasverraes/status/711168935798902785?lang=en
Why is a shared DB bad?
- Is it a clear interface?
- Independent deployment?
- Where is the code that writes to / read from a column?
- Can we evolve the DB schema?
Micro-services ?
Availability
99.999% uptime ?
Ex 99%^20 = 81%
Our Domain for
today
Train management
- Train routing:
- Specify itinerary between two stations
- Specify train topologies
- Schedule train
=> a train makes the same trip every day
- Booking:
- Allows our customers to book a train
- Traffic info:
- Track train on a trip
- Detect delay
- Invoicing:
- Generate invoices and credits notes
Database schema
Exercice 1:
Identify contexts in
data model
Split database
Ideal split of Trip table
Example: Table Trip
Exercise: Split the Booking table
Which domain depends on which data?
T: Traffic info
B: Booking
R: Train routing
I: Invoicing
T,B,R
B,R
T,B,R
T,B,R
T,R,I
T,R,I
T,R,I
T,I
T
T
T,R,I
T,B,I
I
I
B, I
B, R, I
B, I
T, B, R, I
T, B, R, I
B
T, B, R, I
T,B
T, B, R, I
B, I
B, I
B, I
B, R, I
T, B, I
B, I
B, I
How?
Bubble context
Autonomous bubble - synchronous
Autonomous bubble - state stream
Autonomous bubble - events
Autonomous bubble - notif. stream
Exposing legacy assets as services
Exercices
Scenario 1
Today is the day!
Everything is flooded!
Panic on board!
Lots of late trains, we need an
immediate solution.
Deadline: Yesterday
Scenario 1
Many technical problems occur
regularly in recent days
Deadline: Yesterday
We want to quickly set up a
dashboard indicating in "real time"
the number of people impacted.
We cannot afford to re-deploy the
legacy
Expected :
- Schema with modules, DB, API,
messages, models (use the legend)
- Messages frequency / data refresh
rate
- Make explicit any isolation
- Detail data for each post-its
Scenario 1 - solution
Scenario 2
The storm is over.
The dashboard made it a lot
easier to prioritize various
incidents. We'll need a solid
architecture to build upon.
Deadline: Not defined
Scenario 2
Expected :
- Schema with modules, DB, API,
messages, models (use the legend)
- Messages frequency / data refresh
rate
- Make explicit any isolation
- Detail data for each post-its
The dashboard made it a lot
easier to prioritize various
incidents. We'll need a solid
architecture to build upon.
How would you do that given
enough time?
Deadline: Not defined
Scenario 2 - a solution
Scenario 2 - data
Expected :
- Which data is duplicated
- Where does it come from
- Who is the
Writer
Reader
Many technical problems occur
regularly in recent days
Try another representation based
on data model.
Scenario 2 - data, new point of view
Scenario 2 - data - solution
Scenario 3
We have a new “nonon” offer (nogo train).
Improve business opportunity, but success
is not guaranteed.
Need to test without impact legacy and
reuse maximum functionality to reduce
costs.
Deadline: Month
Scenario 3
We have a new “nonon” offer (nogo train).
How to integrate this offer with the current
system?
- New commercial offer : other
reduction cards, options to buy (wifi,
breakfast, cancellation insurance)
- Traffic info and seat reservation
remain in the legacy
- A train is either completely “nonon” or
legacy offer
Deadline: Month
Expected (context and data) :
- Schema with modules, DB, API,
messages, models (use the legend)
- Messages frequency / data refresh
rate
- Make explicit any isolation
- Which data is duplicated
- Where does it come from
Scenario 3 - solution
Scenario 3 - solution
Final Notes
In-process sync event (method call)
Strangler fig pattern
Strangler fig pattern
paulhammant.com
Eventual Consistency is key
Most things can be
decoupled if allow a delay
in consistency (1s, 1min, …)
Ex : The csv exports
CALM theorem
- State will ALWAYS be
consistent if we don't delete
information
Counter examples:
- Set difference
- Multiple processes doing
increment
Questions
La passion d'apprendre
formation.hackyourjob.com
https://www.domainlanguage.com/wp-content/uploads/2016/04/GettingStar
tedWithDDDWhenSurroundedByLegacySystemsV1.pdf
2022
Merci à nos sponsors
« Etoile »
« Flocon »
Thank you !

More Related Content

ODP
Challenges in Large Scale Machine Learning
PDF
Split my monolith - Devoxx
PDF
Split my monolith - Workshop
PDF
Data Modelling at Scale
PPTX
Software architecture for data applications
PDF
Distributed Programming and Data Consistency w/ Notes
PDF
Capella Days 2021 | An example of model-centric engineering environment with ...
PPTX
FlinkForward Asia 2019 - Evolving Keystone to an Open Collaborative Real Time...
Challenges in Large Scale Machine Learning
Split my monolith - Devoxx
Split my monolith - Workshop
Data Modelling at Scale
Software architecture for data applications
Distributed Programming and Data Consistency w/ Notes
Capella Days 2021 | An example of model-centric engineering environment with ...
FlinkForward Asia 2019 - Evolving Keystone to an Open Collaborative Real Time...

Similar to Split my monolith! Workshop (20)

PDF
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
KEY
Dropping ACID - Building Scalable Systems That Work
PDF
Large volume data analysis on the Typesafe Reactive Platform - Big Data Scala...
PPT
SE - System Models
PPT
PPTX
Application and Website Security -- Designer Edition: Using Formal Specificat...
PPTX
Big Data_Architecture.pptx
PPTX
Event sourcing
PDF
Theseus' data
PDF
Data pipelines from zero to solid
PPT
Database Research Principles Revealed
PDF
Introduction to the source{d} Stack
PPTX
Module 2 17CS45
PPTX
Functional architectural patterns
PPTX
architeral design.pptx
PDF
Building a Distributed Collaborative Data Pipeline with Apache Spark
PDF
Eventos y Microservicios - Santander TechTalk
PPT
System Models in Software Engineering SE7
PPTX
Observability - The good, the bad and the ugly Xp Days 2019 Kiev Ukraine
PDF
10 years of microservices at finn.no - why is that dragon still here (ndc o...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
Dropping ACID - Building Scalable Systems That Work
Large volume data analysis on the Typesafe Reactive Platform - Big Data Scala...
SE - System Models
Application and Website Security -- Designer Edition: Using Formal Specificat...
Big Data_Architecture.pptx
Event sourcing
Theseus' data
Data pipelines from zero to solid
Database Research Principles Revealed
Introduction to the source{d} Stack
Module 2 17CS45
Functional architectural patterns
architeral design.pptx
Building a Distributed Collaborative Data Pipeline with Apache Spark
Eventos y Microservicios - Santander TechTalk
System Models in Software Engineering SE7
Observability - The good, the bad and the ugly Xp Days 2019 Kiev Ukraine
10 years of microservices at finn.no - why is that dragon still here (ndc o...
Ad

More from martinsson (14)

PDF
TDD de la vraie vie - AlpesCraft 2022
PDF
Testing strategies
PDF
Testing strategies visualized
PDF
No Agility without Continuous Delivery
PDF
No agility without continuous delivery frugagile
PDF
De legacy au tdd agilegrenoble
PDF
De legacy au tdd - Agile pays basque
PDF
Usable software design ncraft
PPTX
Usable software design - code utilisable
PDF
Une architecture agile et testable
PDF
Pyramide des tests
PPT
Changer Pour Mieux Coder
ODP
Mikado
ODP
Mikado
TDD de la vraie vie - AlpesCraft 2022
Testing strategies
Testing strategies visualized
No Agility without Continuous Delivery
No agility without continuous delivery frugagile
De legacy au tdd agilegrenoble
De legacy au tdd - Agile pays basque
Usable software design ncraft
Usable software design - code utilisable
Une architecture agile et testable
Pyramide des tests
Changer Pour Mieux Coder
Mikado
Mikado
Ad

Recently uploaded (20)

PDF
Nekopoi APK 2025 free lastest update
PDF
top salesforce developer skills in 2025.pdf
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PDF
AI in Product Development-omnex systems
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
Digital Strategies for Manufacturing Companies
PDF
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
PDF
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
PPTX
Essential Infomation Tech presentation.pptx
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PDF
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
PDF
medical staffing services at VALiNTRY
PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
PDF
System and Network Administration Chapter 2
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PPTX
Reimagine Home Health with the Power of Agentic AI​
PPTX
Introduction to Artificial Intelligence
Nekopoi APK 2025 free lastest update
top salesforce developer skills in 2025.pdf
Odoo Companies in India – Driving Business Transformation.pdf
AI in Product Development-omnex systems
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Digital Strategies for Manufacturing Companies
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
Essential Infomation Tech presentation.pptx
Navsoft: AI-Powered Business Solutions & Custom Software Development
Wondershare Filmora 15 Crack With Activation Key [2025
Adobe Illustrator 28.6 Crack My Vision of Vector Design
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
medical staffing services at VALiNTRY
VVF-Customer-Presentation2025-Ver1.9.pptx
System and Network Administration Chapter 2
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
Reimagine Home Health with the Power of Agentic AI​
Introduction to Artificial Intelligence

Split my monolith! Workshop