SlideShare a Scribd company logo
Monolith Splitter
SFSCON 2024
Support for Migration of a Monolithic System
to Microservices
Speakers
Bruno Rossi
● Assistant Professor at the at the Faculty of
Informatics, Masaryk University, Brno,
Czech Republic
● Research interests in software evolution,
open source software systems, and
cyber-physical systems
● Integrating open source software in the
courses taught at Masaryk University
Michal Skipala
● Software Engineer at T-Mobile Czech
Republic
● Student at Masaryk University, currently
working on Diploma Thesis
● Specializes in Fullstack Web Development
in recent technologies
● Proficient in Java and ReactJS
Context
● Migration from monolithic systems is of interest for many companies running
on legacy systems, but…
○ Complexity of migration to microservices architecture
○ Numerous ways to split a monolith into a microservices system
○ Measuring the quality of the final migration is challenging
● Research papers suggesting ways to optimize the process often lack
implementation
What is Monolith Splitter?
● A tool in development that suggests approaches for migrating monolithic
applications to microservices
● Accepts execution traces and Git log files as input
● Provides recommendations for clustering classes from execution traces into
microservice-aligned groups
● Tech Stack: Java 21 + Spring Boot 3.2, PostgreSQL, TypeScript, ReactJS
Benefits
● Monolith Splitter provides support for software architects aiming to transition
applications to a microservices architecture
● Algorithm implementations will be openly available, enabling practitioners to
leverage the tool across various projects
● Accelerates the modernization of legacy applications by providing optimized
strategies for monolith decomposition
Example Input & Output
I: Execution traces
O: Clusters
Mono2Micro
● Spatio-temporal decomposition
● Business cases
● Runtime call relations
○
○
● Direct Call Relations, Direct Call Pattern
● Indirect Call Relations, Indirect Call Pattern
● Computation of Similarity
● Hierarchical Clustering
[1] Mono2Micro: A Practical and Effective Tool for Decomposing Monolithic Java
Applications to Microservices
https://www.researchgate.net/publication/354057927_Mono2Micro_a_practical_and_
effective_tool_for_decomposing_monolithic_Java_applications_to_microservices
[1]
FoSCI
● Functional Atom Generation (coherent, minimal functional unit)
● Assignment of Functional Atoms into Service Candidates
● Non-dominated Sorting Genetic Algorithm-II (NSGA-II) for optimization
● Structural and Conceptual Intra-Connectivity & Inter-Connectivity
[2] Service Candidate Identification from Monolithic Systems Based on Execution
Traces https://ieeexplore.ieee.org/document/8686152
[2]
Monolith Splitter Implementation & Integration
● Two reimplemented approaches
● Implementation based on research articles:
[1] Mono2Micro: A Practical and Effective
Tool for Decomposing Monolithic Java
Applications to Microservices
[2] Service Candidate Identification from
Monolithic Systems based on Execution
Traces
[1] Mono2Micro: A Practical and Effective Tool for Decomposing Monolithic Java
Applications to Microservices
https://www.researchgate.net/publication/354057927_Mono2Micro_a_practical_and_
effective_tool_for_decomposing_monolithic_Java_applications_to_microservices
[2] Service Candidate Identification from
Monolithic Systems Based on Execution Traces
https://ieeexplore.ieee.org/document/8686152
Monolith Splitter Test Results
● Currently tested on the JPetStore [3] and AcmeAir [4] applications
● Execution traces sourced from publicly available Mono2Micro datasets on
GitHub [5]
● Future testing planned on widely-used, monolithic open-source projects
written in Java
[3] JPetStore https://github.com/KimJongSung/jPetStore
[4] AcmeAir https://github.com/acmeair/acmeair
[5] Mono2Micro-FSE-2021 https://github.com/kaliaanup/Mono2Micro-FSE-2021
5 Clusters 6 Clusters
Mono2Micro JPetStore
5 Clusters 6 Clusters
FoSCI JPetStore
2 diff
5 Clusters 6 Clusters
FoSCI JPetStore
3 diff
8 Clusters 9 Clusters
Mono2Micro AcmeAir
5 Clusters 6 Clusters
FoSCI AcmeAir
2 diff
5 Clusters 6 Clusters
FoSCI AcmeAir
3 diff
Evaluation - Which approach is optimal?
● Determining the most effective clustering approach for the monolith presents
a significant challenge
● Each clustering method is designed to optimize specific metrics
● The prototype includes multiple clustering approaches to enable a more
informed decision when migrating a monolithic project
Current Limitations and Challenges
● Optimization of metrics computation for explainability on the way
● Varying approaches require specific input sets
● Some legacy projects lack access to Git logs
● FoSCI analysis is time-intensive on large data sets (over 10 MB)
● Capturing quality execution traces in legacy systems is challenging due to
complexity
Thank you!
● Questions
Reach Out for collaboration!
Bruno Rossi
brossi@mail.muni.cz
Michal Skipala
skipala3@gmail.com

More Related Content

PPTX
Refactoring Monolith to Microservices
PPTX
Isn't the Monolith Just Enough?
PDF
Microservices.pdf
PDF
Decompose your monolith: strategies for migrating to microservices (Tide)
PDF
#DevNexus202 Decompose your monolith
PDF
How to Overcome Data Challenges When Refactoring Monoliths to Microservices
PDF
Oracle CodeOne 2019: Decompose Your Monolith: Strategies for Migrating to Mic...
PDF
Refactoring Into Microservices. Chicago Coders Conference 2017-06-26
Refactoring Monolith to Microservices
Isn't the Monolith Just Enough?
Microservices.pdf
Decompose your monolith: strategies for migrating to microservices (Tide)
#DevNexus202 Decompose your monolith
How to Overcome Data Challenges When Refactoring Monoliths to Microservices
Oracle CodeOne 2019: Decompose Your Monolith: Strategies for Migrating to Mic...
Refactoring Into Microservices. Chicago Coders Conference 2017-06-26

Similar to SFSCON24 - Michal Skipala & Bruno Rossi - Monolith Splitter (20)

PDF
Voxxed days cluj-napoca Nowadays architecture trends alberto_salazarv2
PDF
From monolithic systems to microservices. a decomposition framework based on ...
PPTX
Microservices architecture
PDF
Lowering the risk of monolith to microservices
PPTX
Microservice intro
PDF
Operational impact: monolithic vs. microservices
PDF
2024-06 ICSA Industrial Keynote - Demystifying Hypes in Software Architecture
PDF
From monolithic to microservices to serverless
PDF
Istio as an Enabler for Migrating Monolithic Applications to Microservices v1.3
PDF
DEVNET-1142 Decomposing Monolithic Applications to Microservices
PDF
Microservices for Java Architects (Indianapolis, April 15, 2015)
PPTX
Microservices and OSGi: Better together?
PDF
Refactoring Into Microservices 2016-11-06
PDF
Refactoring Into Microservices 2016-11-08
PDF
Responsible Microservices
PPTX
Introduction to microservices
PPTX
Microservices tech talk ppt
PPTX
Pragmatic Microservices
PDF
Jconf Colombia Nowadays Architecture Trends, from Monolith to Microservices a...
PPTX
Monoliths and Microservices
Voxxed days cluj-napoca Nowadays architecture trends alberto_salazarv2
From monolithic systems to microservices. a decomposition framework based on ...
Microservices architecture
Lowering the risk of monolith to microservices
Microservice intro
Operational impact: monolithic vs. microservices
2024-06 ICSA Industrial Keynote - Demystifying Hypes in Software Architecture
From monolithic to microservices to serverless
Istio as an Enabler for Migrating Monolithic Applications to Microservices v1.3
DEVNET-1142 Decomposing Monolithic Applications to Microservices
Microservices for Java Architects (Indianapolis, April 15, 2015)
Microservices and OSGi: Better together?
Refactoring Into Microservices 2016-11-06
Refactoring Into Microservices 2016-11-08
Responsible Microservices
Introduction to microservices
Microservices tech talk ppt
Pragmatic Microservices
Jconf Colombia Nowadays Architecture Trends, from Monolith to Microservices a...
Monoliths and Microservices
Ad

More from South Tyrol Free Software Conference (20)

PDF
SFSCON24 - Marina Latini - 1, 2, 3, Doc Kit!
PDF
SFSCON24 - Carmen Delgado Ivar Grimstad - Nurturing OpenJDK distribution: Ecl...
PDF
SFSCON24 - Eduardo Guerra - codEEmoji – Making code more informative with emojis
PDF
SFSCON24 - Juri Solovjov - How to start contributing and still have fun
PDF
SFSCON24 - Jorge Melegati - Software Engineering Automation: From early tools...
PDF
SFSCON24 - Chiara Civardi & Dominika Tasarz Sochacka - The Crucial Role of Op...
PDF
SFSCON24 - Moritz Mock, Barbara Russo & Jorge Melegati - Can Test Driven Deve...
PDF
SFSCON24 - Aurelio Buonomo & Christian Zanotti - Apisense – Easily monitor an...
PDF
SFSCON24 - Giovanni Giannotta & Orneda Lecini - Approaches to Object Detectio...
PDF
SFSCON24 - Alberto Nicoletti - The SMART Box of AURA Project
PDF
SFSCON24 - Luca Alloatti - Open-source silicon chips
PDF
SFSCON24 - Roberto Innocenti - 2025 scenario on OpenISA OpenPower Open Hardwa...
PDF
SFSCON24 - Juan Rico - Enabling global interoperability among smart devices ...
PDF
SFSCON24 - Seckin Celik & Davide Serpico - Adoption Determinants of Open Hard...
PDF
SFSCON24 - Stefan Mutschlechner - Smart Werke Meran - Lorawan Use Cases
PDF
SFSCON24 - Mattia Pizzirani - Raspberry Pi and Node-RED: Open Source Tools fo...
PDF
SFSCON24 - Attaullah Buriro - ClapMetrics: Decoding Users Genderand Age Throu...
PDF
SFSCON24 - Joseph P. De Veaugh Geiss - Opt out? Opt in? Opt Green! Bringing F...
PDF
SFSCON24 - Fulvio Mastrogiovanni - On the ethical challenges raised by robots...
PDF
SFSCON24 - Charles-H. Schulz - Let’s all get over the CRA!
SFSCON24 - Marina Latini - 1, 2, 3, Doc Kit!
SFSCON24 - Carmen Delgado Ivar Grimstad - Nurturing OpenJDK distribution: Ecl...
SFSCON24 - Eduardo Guerra - codEEmoji – Making code more informative with emojis
SFSCON24 - Juri Solovjov - How to start contributing and still have fun
SFSCON24 - Jorge Melegati - Software Engineering Automation: From early tools...
SFSCON24 - Chiara Civardi & Dominika Tasarz Sochacka - The Crucial Role of Op...
SFSCON24 - Moritz Mock, Barbara Russo & Jorge Melegati - Can Test Driven Deve...
SFSCON24 - Aurelio Buonomo & Christian Zanotti - Apisense – Easily monitor an...
SFSCON24 - Giovanni Giannotta & Orneda Lecini - Approaches to Object Detectio...
SFSCON24 - Alberto Nicoletti - The SMART Box of AURA Project
SFSCON24 - Luca Alloatti - Open-source silicon chips
SFSCON24 - Roberto Innocenti - 2025 scenario on OpenISA OpenPower Open Hardwa...
SFSCON24 - Juan Rico - Enabling global interoperability among smart devices ...
SFSCON24 - Seckin Celik & Davide Serpico - Adoption Determinants of Open Hard...
SFSCON24 - Stefan Mutschlechner - Smart Werke Meran - Lorawan Use Cases
SFSCON24 - Mattia Pizzirani - Raspberry Pi and Node-RED: Open Source Tools fo...
SFSCON24 - Attaullah Buriro - ClapMetrics: Decoding Users Genderand Age Throu...
SFSCON24 - Joseph P. De Veaugh Geiss - Opt out? Opt in? Opt Green! Bringing F...
SFSCON24 - Fulvio Mastrogiovanni - On the ethical challenges raised by robots...
SFSCON24 - Charles-H. Schulz - Let’s all get over the CRA!
Ad

Recently uploaded (20)

PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
KodekX | Application Modernization Development
PPTX
Big Data Technologies - Introduction.pptx
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPTX
A Presentation on Artificial Intelligence
PPT
Teaching material agriculture food technology
PDF
Approach and Philosophy of On baking technology
PDF
Unlocking AI with Model Context Protocol (MCP)
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PDF
Modernizing your data center with Dell and AMD
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
The Rise and Fall of 3GPP – Time for a Sabbatical?
KodekX | Application Modernization Development
Big Data Technologies - Introduction.pptx
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
A Presentation on Artificial Intelligence
Teaching material agriculture food technology
Approach and Philosophy of On baking technology
Unlocking AI with Model Context Protocol (MCP)
Understanding_Digital_Forensics_Presentation.pptx
Network Security Unit 5.pdf for BCA BBA.
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
CIFDAQ's Market Insight: SEC Turns Pro Crypto
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
Modernizing your data center with Dell and AMD
Per capita expenditure prediction using model stacking based on satellite ima...
Encapsulation_ Review paper, used for researhc scholars
Reach Out and Touch Someone: Haptics and Empathic Computing
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf

SFSCON24 - Michal Skipala & Bruno Rossi - Monolith Splitter

  • 1. Monolith Splitter SFSCON 2024 Support for Migration of a Monolithic System to Microservices
  • 2. Speakers Bruno Rossi ● Assistant Professor at the at the Faculty of Informatics, Masaryk University, Brno, Czech Republic ● Research interests in software evolution, open source software systems, and cyber-physical systems ● Integrating open source software in the courses taught at Masaryk University Michal Skipala ● Software Engineer at T-Mobile Czech Republic ● Student at Masaryk University, currently working on Diploma Thesis ● Specializes in Fullstack Web Development in recent technologies ● Proficient in Java and ReactJS
  • 3. Context ● Migration from monolithic systems is of interest for many companies running on legacy systems, but… ○ Complexity of migration to microservices architecture ○ Numerous ways to split a monolith into a microservices system ○ Measuring the quality of the final migration is challenging ● Research papers suggesting ways to optimize the process often lack implementation
  • 4. What is Monolith Splitter? ● A tool in development that suggests approaches for migrating monolithic applications to microservices ● Accepts execution traces and Git log files as input ● Provides recommendations for clustering classes from execution traces into microservice-aligned groups ● Tech Stack: Java 21 + Spring Boot 3.2, PostgreSQL, TypeScript, ReactJS
  • 5. Benefits ● Monolith Splitter provides support for software architects aiming to transition applications to a microservices architecture ● Algorithm implementations will be openly available, enabling practitioners to leverage the tool across various projects ● Accelerates the modernization of legacy applications by providing optimized strategies for monolith decomposition
  • 6. Example Input & Output I: Execution traces O: Clusters
  • 7. Mono2Micro ● Spatio-temporal decomposition ● Business cases ● Runtime call relations ○ ○ ● Direct Call Relations, Direct Call Pattern ● Indirect Call Relations, Indirect Call Pattern ● Computation of Similarity ● Hierarchical Clustering [1] Mono2Micro: A Practical and Effective Tool for Decomposing Monolithic Java Applications to Microservices https://www.researchgate.net/publication/354057927_Mono2Micro_a_practical_and_ effective_tool_for_decomposing_monolithic_Java_applications_to_microservices [1]
  • 8. FoSCI ● Functional Atom Generation (coherent, minimal functional unit) ● Assignment of Functional Atoms into Service Candidates ● Non-dominated Sorting Genetic Algorithm-II (NSGA-II) for optimization ● Structural and Conceptual Intra-Connectivity & Inter-Connectivity [2] Service Candidate Identification from Monolithic Systems Based on Execution Traces https://ieeexplore.ieee.org/document/8686152 [2]
  • 9. Monolith Splitter Implementation & Integration ● Two reimplemented approaches ● Implementation based on research articles: [1] Mono2Micro: A Practical and Effective Tool for Decomposing Monolithic Java Applications to Microservices [2] Service Candidate Identification from Monolithic Systems based on Execution Traces [1] Mono2Micro: A Practical and Effective Tool for Decomposing Monolithic Java Applications to Microservices https://www.researchgate.net/publication/354057927_Mono2Micro_a_practical_and_ effective_tool_for_decomposing_monolithic_Java_applications_to_microservices [2] Service Candidate Identification from Monolithic Systems Based on Execution Traces https://ieeexplore.ieee.org/document/8686152
  • 10. Monolith Splitter Test Results ● Currently tested on the JPetStore [3] and AcmeAir [4] applications ● Execution traces sourced from publicly available Mono2Micro datasets on GitHub [5] ● Future testing planned on widely-used, monolithic open-source projects written in Java [3] JPetStore https://github.com/KimJongSung/jPetStore [4] AcmeAir https://github.com/acmeair/acmeair [5] Mono2Micro-FSE-2021 https://github.com/kaliaanup/Mono2Micro-FSE-2021
  • 11. 5 Clusters 6 Clusters Mono2Micro JPetStore
  • 12. 5 Clusters 6 Clusters FoSCI JPetStore 2 diff
  • 13. 5 Clusters 6 Clusters FoSCI JPetStore 3 diff
  • 14. 8 Clusters 9 Clusters Mono2Micro AcmeAir
  • 15. 5 Clusters 6 Clusters FoSCI AcmeAir 2 diff
  • 16. 5 Clusters 6 Clusters FoSCI AcmeAir 3 diff
  • 17. Evaluation - Which approach is optimal? ● Determining the most effective clustering approach for the monolith presents a significant challenge ● Each clustering method is designed to optimize specific metrics ● The prototype includes multiple clustering approaches to enable a more informed decision when migrating a monolithic project
  • 18. Current Limitations and Challenges ● Optimization of metrics computation for explainability on the way ● Varying approaches require specific input sets ● Some legacy projects lack access to Git logs ● FoSCI analysis is time-intensive on large data sets (over 10 MB) ● Capturing quality execution traces in legacy systems is challenging due to complexity
  • 19. Thank you! ● Questions Reach Out for collaboration! Bruno Rossi brossi@mail.muni.cz Michal Skipala skipala3@gmail.com