SlideShare a Scribd company logo
Refactoring the
Monolith?
Steven Hicks
http://theexceptioncatcher.com
Who am I?
Steven Hicks
http://theexceptioncatcher.com
@theexceptioncat
The Monolith
The monolith is a full application that encompases the entire life
cycle of a user’s interaction:
Web services
Web Rendering
Serving up static resources
Business Logic
Microservices
● Independent operations
● Small in context
○ Smaller Cognitive load
● Can embrace new technologies and
languages without a full cultural shift
What Happens In Reality
● Harder To Standardize
○ Multiple Code bases
○ Duplicated Code Bases
● Serialization and communication
overhead
● Lack of code reuse
● DevOps issues
● Tracing /Fragile system
● Overly Reliant on REST/JSON
● Client is up to the requestor
● Various instances of the same
microservice (WEB SCALE)
● Fiefdoms Develop
How did we get here?
What can we do about
it?
Popular Frameworks for Enterprise Solutions
Spring J2EE
Approach #1:
Modular Monolith
Modular Monolith
● Addressed the complexity issue that
microservices solves
● Makes smaller modules within the
system
● Addresses the network
communication problem
● Relies on the build to put everything
together
● It’s an easier step towards breaking up
the monolith
● Domain Driven Design approach
● Local builds are easy to run locally
Modular Monolith: Downsides
● Tooling is a bit difficult to handle
(multiple dependencies with auto
updates)
● A bit hard to extend and change
design
● It’s still a “monolith.” *
● Cognitive Load still requires system
level interaction
Approach 2
Message Queuing
Message Queuing
● Communication and Messaging is
handled by a central communication
service (the message queue)
● Separation of Responsibility
● Removes need for custom
serialization
● Storage of communication *
Message Queuing: Downsides
● Single Point of Failure
● Tracing (throughout the system)
requires a lot of logging
● Replying to a request may get
complicated
● Versioning becomes difficult
Approach 3
Pipeline and Nodes
Pipeline and Nodes
● Isolation of processing and service
delivery
● Handles the processing of requests
without slowing down other users
● Very Fast Requests
● Can handle complicated requests
● Easy to scale up
● Workflows-like design
● Smaller components to handle logic
Pipeline and Nodes: The Downsides
● Hard on databases
● Doesn’t handle state well
● Consensus and Split Brain Issues
● Large Memory Requirements
● Not great for round trips on live
requests for large transformations
● Still requires a bit of Devops setup
(Less so than microservices)
Questions?
Comments?
Experiences?
http://theexceptioncatcher.com
@theexceptioncat

More Related Content

Similar to Refactoring the monolith

Pywaw summit 2015 - Monolithic app to micro services transition is easy...
Pywaw summit 2015 - Monolithic app to micro services transition is easy...Pywaw summit 2015 - Monolithic app to micro services transition is easy...
Pywaw summit 2015 - Monolithic app to micro services transition is easy...
Tomasz Choduń
 
Surviving microservices
Surviving microservicesSurviving microservices
Surviving microservices
Francesco Degrassi
 
Microservices: an introduction
Microservices: an introductionMicroservices: an introduction
Microservices: an introduction
Daniel Baptista Dias
 
The working architecture of node js applications open tech week javascript ...
The working architecture of node js applications   open tech week javascript ...The working architecture of node js applications   open tech week javascript ...
The working architecture of node js applications open tech week javascript ...
Viktor Turskyi
 
The working architecture of NodeJS applications, Виктор Турский
The working architecture of NodeJS applications, Виктор ТурскийThe working architecture of NodeJS applications, Виктор Турский
The working architecture of NodeJS applications, Виктор Турский
Sigma Software
 
Introduction to event based microservices
Introduction to event based microservicesIntroduction to event based microservices
Introduction to event based microservices
Grigoris Grigoriadis
 
Micro Services Intro
Micro Services IntroMicro Services Intro
Micro Services Intro
Alex Apollonsky
 
Microservices - opportunities, dilemmas and problems
Microservices - opportunities, dilemmas and problemsMicroservices - opportunities, dilemmas and problems
Microservices - opportunities, dilemmas and problems
Łukasz Sowa
 
2 years into drinking the Microservice kool-aid (Fact and Fiction)
2 years into drinking the Microservice kool-aid (Fact and Fiction)2 years into drinking the Microservice kool-aid (Fact and Fiction)
2 years into drinking the Microservice kool-aid (Fact and Fiction)
roblund
 
Topic02-Architecture.pptx
Topic02-Architecture.pptxTopic02-Architecture.pptx
Topic02-Architecture.pptx
ImXaib
 
Understanding Microservices
Understanding Microservices Understanding Microservices
Understanding Microservices
M A Hossain Tonu
 
Do I Need A Service Mesh.pptx
Do I Need A Service Mesh.pptxDo I Need A Service Mesh.pptx
Do I Need A Service Mesh.pptx
PINGXIONG3
 
Wie Monolithen für die Zukuft trimmen
Wie Monolithen für die Zukuft trimmenWie Monolithen für die Zukuft trimmen
Wie Monolithen für die Zukuft trimmen
Anatole Tresch
 
Microservices: The Best Practices
Microservices: The Best PracticesMicroservices: The Best Practices
Microservices: The Best Practices
Pavel Mička
 
Microservice Architecture
Microservice ArchitectureMicroservice Architecture
Microservice Architecture
Engin Yoeyen
 
Ledingkart Meetup #1: Monolithic to microservices in action
Ledingkart Meetup #1: Monolithic to microservices in actionLedingkart Meetup #1: Monolithic to microservices in action
Ledingkart Meetup #1: Monolithic to microservices in action
Mukesh Singh
 
Refactoring to a system of systems
Refactoring to a system of systemsRefactoring to a system of systems
Refactoring to a system of systems
VMware Tanzu
 
Viktor Turskyi "Effective NodeJS Application Development"
Viktor Turskyi "Effective NodeJS Application Development"Viktor Turskyi "Effective NodeJS Application Development"
Viktor Turskyi "Effective NodeJS Application Development"
Fwdays
 
Microservices, docker , kubernetes and many more
Microservices, docker , kubernetes and many moreMicroservices, docker , kubernetes and many more
Microservices, docker , kubernetes and many more
Vishwas N
 
Architectural Decisions: Smoothly and Consistently
Architectural Decisions: Smoothly and ConsistentlyArchitectural Decisions: Smoothly and Consistently
Architectural Decisions: Smoothly and Consistently
Comsysto Reply GmbH
 

Similar to Refactoring the monolith (20)

Pywaw summit 2015 - Monolithic app to micro services transition is easy...
Pywaw summit 2015 - Monolithic app to micro services transition is easy...Pywaw summit 2015 - Monolithic app to micro services transition is easy...
Pywaw summit 2015 - Monolithic app to micro services transition is easy...
 
Surviving microservices
Surviving microservicesSurviving microservices
Surviving microservices
 
Microservices: an introduction
Microservices: an introductionMicroservices: an introduction
Microservices: an introduction
 
The working architecture of node js applications open tech week javascript ...
The working architecture of node js applications   open tech week javascript ...The working architecture of node js applications   open tech week javascript ...
The working architecture of node js applications open tech week javascript ...
 
The working architecture of NodeJS applications, Виктор Турский
The working architecture of NodeJS applications, Виктор ТурскийThe working architecture of NodeJS applications, Виктор Турский
The working architecture of NodeJS applications, Виктор Турский
 
Introduction to event based microservices
Introduction to event based microservicesIntroduction to event based microservices
Introduction to event based microservices
 
Micro Services Intro
Micro Services IntroMicro Services Intro
Micro Services Intro
 
Microservices - opportunities, dilemmas and problems
Microservices - opportunities, dilemmas and problemsMicroservices - opportunities, dilemmas and problems
Microservices - opportunities, dilemmas and problems
 
2 years into drinking the Microservice kool-aid (Fact and Fiction)
2 years into drinking the Microservice kool-aid (Fact and Fiction)2 years into drinking the Microservice kool-aid (Fact and Fiction)
2 years into drinking the Microservice kool-aid (Fact and Fiction)
 
Topic02-Architecture.pptx
Topic02-Architecture.pptxTopic02-Architecture.pptx
Topic02-Architecture.pptx
 
Understanding Microservices
Understanding Microservices Understanding Microservices
Understanding Microservices
 
Do I Need A Service Mesh.pptx
Do I Need A Service Mesh.pptxDo I Need A Service Mesh.pptx
Do I Need A Service Mesh.pptx
 
Wie Monolithen für die Zukuft trimmen
Wie Monolithen für die Zukuft trimmenWie Monolithen für die Zukuft trimmen
Wie Monolithen für die Zukuft trimmen
 
Microservices: The Best Practices
Microservices: The Best PracticesMicroservices: The Best Practices
Microservices: The Best Practices
 
Microservice Architecture
Microservice ArchitectureMicroservice Architecture
Microservice Architecture
 
Ledingkart Meetup #1: Monolithic to microservices in action
Ledingkart Meetup #1: Monolithic to microservices in actionLedingkart Meetup #1: Monolithic to microservices in action
Ledingkart Meetup #1: Monolithic to microservices in action
 
Refactoring to a system of systems
Refactoring to a system of systemsRefactoring to a system of systems
Refactoring to a system of systems
 
Viktor Turskyi "Effective NodeJS Application Development"
Viktor Turskyi "Effective NodeJS Application Development"Viktor Turskyi "Effective NodeJS Application Development"
Viktor Turskyi "Effective NodeJS Application Development"
 
Microservices, docker , kubernetes and many more
Microservices, docker , kubernetes and many moreMicroservices, docker , kubernetes and many more
Microservices, docker , kubernetes and many more
 
Architectural Decisions: Smoothly and Consistently
Architectural Decisions: Smoothly and ConsistentlyArchitectural Decisions: Smoothly and Consistently
Architectural Decisions: Smoothly and Consistently
 

Recently uploaded

RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
thanhdowork
 
Swimming pool mechanical components design.pptx
Swimming pool  mechanical components design.pptxSwimming pool  mechanical components design.pptx
Swimming pool mechanical components design.pptx
yokeleetan1
 
ACEP Magazine edition 4th launched on 05.06.2024
ACEP Magazine edition 4th launched on 05.06.2024ACEP Magazine edition 4th launched on 05.06.2024
ACEP Magazine edition 4th launched on 05.06.2024
Rahul
 
Planning Of Procurement o different goods and services
Planning Of Procurement o different goods and servicesPlanning Of Procurement o different goods and services
Planning Of Procurement o different goods and services
JoytuBarua2
 
Hierarchical Digital Twin of a Naval Power System
Hierarchical Digital Twin of a Naval Power SystemHierarchical Digital Twin of a Naval Power System
Hierarchical Digital Twin of a Naval Power System
Kerry Sado
 
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressions
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressionsKuberTENes Birthday Bash Guadalajara - K8sGPT first impressions
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressions
Victor Morales
 
Modelagem de um CSTR com reação endotermica.pdf
Modelagem de um CSTR com reação endotermica.pdfModelagem de um CSTR com reação endotermica.pdf
Modelagem de um CSTR com reação endotermica.pdf
camseq
 
DfMAy 2024 - key insights and contributions
DfMAy 2024 - key insights and contributionsDfMAy 2024 - key insights and contributions
DfMAy 2024 - key insights and contributions
gestioneergodomus
 
Literature Review Basics and Understanding Reference Management.pptx
Literature Review Basics and Understanding Reference Management.pptxLiterature Review Basics and Understanding Reference Management.pptx
Literature Review Basics and Understanding Reference Management.pptx
Dr Ramhari Poudyal
 
Tutorial for 16S rRNA Gene Analysis with QIIME2.pdf
Tutorial for 16S rRNA Gene Analysis with QIIME2.pdfTutorial for 16S rRNA Gene Analysis with QIIME2.pdf
Tutorial for 16S rRNA Gene Analysis with QIIME2.pdf
aqil azizi
 
Unbalanced Three Phase Systems and circuits.pptx
Unbalanced Three Phase Systems and circuits.pptxUnbalanced Three Phase Systems and circuits.pptx
Unbalanced Three Phase Systems and circuits.pptx
ChristineTorrepenida1
 
14 Template Contractual Notice - EOT Application
14 Template Contractual Notice - EOT Application14 Template Contractual Notice - EOT Application
14 Template Contractual Notice - EOT Application
SyedAbiiAzazi1
 
原版制作(unimelb毕业证书)墨尔本大学毕业证Offer一模一样
原版制作(unimelb毕业证书)墨尔本大学毕业证Offer一模一样原版制作(unimelb毕业证书)墨尔本大学毕业证Offer一模一样
原版制作(unimelb毕业证书)墨尔本大学毕业证Offer一模一样
obonagu
 
PPT on GRP pipes manufacturing and testing
PPT on GRP pipes manufacturing and testingPPT on GRP pipes manufacturing and testing
PPT on GRP pipes manufacturing and testing
anoopmanoharan2
 
AIR POLLUTION lecture EnE203 updated.pdf
AIR POLLUTION lecture EnE203 updated.pdfAIR POLLUTION lecture EnE203 updated.pdf
AIR POLLUTION lecture EnE203 updated.pdf
RicletoEspinosa1
 
Self-Control of Emotions by Slidesgo.pptx
Self-Control of Emotions by Slidesgo.pptxSelf-Control of Emotions by Slidesgo.pptx
Self-Control of Emotions by Slidesgo.pptx
iemerc2024
 
Building Electrical System Design & Installation
Building Electrical System Design & InstallationBuilding Electrical System Design & Installation
Building Electrical System Design & Installation
symbo111
 
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&BDesign and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
Sreedhar Chowdam
 
一比一原版(Otago毕业证)奥塔哥大学毕业证成绩单如何办理
一比一原版(Otago毕业证)奥塔哥大学毕业证成绩单如何办理一比一原版(Otago毕业证)奥塔哥大学毕业证成绩单如何办理
一比一原版(Otago毕业证)奥塔哥大学毕业证成绩单如何办理
dxobcob
 
PROJECT FORMAT FOR EVS AMITY UNIVERSITY GWALIOR.ppt
PROJECT FORMAT FOR EVS AMITY UNIVERSITY GWALIOR.pptPROJECT FORMAT FOR EVS AMITY UNIVERSITY GWALIOR.ppt
PROJECT FORMAT FOR EVS AMITY UNIVERSITY GWALIOR.ppt
bhadouriyakaku
 

Recently uploaded (20)

RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
 
Swimming pool mechanical components design.pptx
Swimming pool  mechanical components design.pptxSwimming pool  mechanical components design.pptx
Swimming pool mechanical components design.pptx
 
ACEP Magazine edition 4th launched on 05.06.2024
ACEP Magazine edition 4th launched on 05.06.2024ACEP Magazine edition 4th launched on 05.06.2024
ACEP Magazine edition 4th launched on 05.06.2024
 
Planning Of Procurement o different goods and services
Planning Of Procurement o different goods and servicesPlanning Of Procurement o different goods and services
Planning Of Procurement o different goods and services
 
Hierarchical Digital Twin of a Naval Power System
Hierarchical Digital Twin of a Naval Power SystemHierarchical Digital Twin of a Naval Power System
Hierarchical Digital Twin of a Naval Power System
 
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressions
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressionsKuberTENes Birthday Bash Guadalajara - K8sGPT first impressions
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressions
 
Modelagem de um CSTR com reação endotermica.pdf
Modelagem de um CSTR com reação endotermica.pdfModelagem de um CSTR com reação endotermica.pdf
Modelagem de um CSTR com reação endotermica.pdf
 
DfMAy 2024 - key insights and contributions
DfMAy 2024 - key insights and contributionsDfMAy 2024 - key insights and contributions
DfMAy 2024 - key insights and contributions
 
Literature Review Basics and Understanding Reference Management.pptx
Literature Review Basics and Understanding Reference Management.pptxLiterature Review Basics and Understanding Reference Management.pptx
Literature Review Basics and Understanding Reference Management.pptx
 
Tutorial for 16S rRNA Gene Analysis with QIIME2.pdf
Tutorial for 16S rRNA Gene Analysis with QIIME2.pdfTutorial for 16S rRNA Gene Analysis with QIIME2.pdf
Tutorial for 16S rRNA Gene Analysis with QIIME2.pdf
 
Unbalanced Three Phase Systems and circuits.pptx
Unbalanced Three Phase Systems and circuits.pptxUnbalanced Three Phase Systems and circuits.pptx
Unbalanced Three Phase Systems and circuits.pptx
 
14 Template Contractual Notice - EOT Application
14 Template Contractual Notice - EOT Application14 Template Contractual Notice - EOT Application
14 Template Contractual Notice - EOT Application
 
原版制作(unimelb毕业证书)墨尔本大学毕业证Offer一模一样
原版制作(unimelb毕业证书)墨尔本大学毕业证Offer一模一样原版制作(unimelb毕业证书)墨尔本大学毕业证Offer一模一样
原版制作(unimelb毕业证书)墨尔本大学毕业证Offer一模一样
 
PPT on GRP pipes manufacturing and testing
PPT on GRP pipes manufacturing and testingPPT on GRP pipes manufacturing and testing
PPT on GRP pipes manufacturing and testing
 
AIR POLLUTION lecture EnE203 updated.pdf
AIR POLLUTION lecture EnE203 updated.pdfAIR POLLUTION lecture EnE203 updated.pdf
AIR POLLUTION lecture EnE203 updated.pdf
 
Self-Control of Emotions by Slidesgo.pptx
Self-Control of Emotions by Slidesgo.pptxSelf-Control of Emotions by Slidesgo.pptx
Self-Control of Emotions by Slidesgo.pptx
 
Building Electrical System Design & Installation
Building Electrical System Design & InstallationBuilding Electrical System Design & Installation
Building Electrical System Design & Installation
 
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&BDesign and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
 
一比一原版(Otago毕业证)奥塔哥大学毕业证成绩单如何办理
一比一原版(Otago毕业证)奥塔哥大学毕业证成绩单如何办理一比一原版(Otago毕业证)奥塔哥大学毕业证成绩单如何办理
一比一原版(Otago毕业证)奥塔哥大学毕业证成绩单如何办理
 
PROJECT FORMAT FOR EVS AMITY UNIVERSITY GWALIOR.ppt
PROJECT FORMAT FOR EVS AMITY UNIVERSITY GWALIOR.pptPROJECT FORMAT FOR EVS AMITY UNIVERSITY GWALIOR.ppt
PROJECT FORMAT FOR EVS AMITY UNIVERSITY GWALIOR.ppt
 

Refactoring the monolith

  • 2. Who am I? Steven Hicks http://theexceptioncatcher.com @theexceptioncat
  • 3. The Monolith The monolith is a full application that encompases the entire life cycle of a user’s interaction: Web services Web Rendering Serving up static resources Business Logic
  • 4. Microservices ● Independent operations ● Small in context ○ Smaller Cognitive load ● Can embrace new technologies and languages without a full cultural shift
  • 5. What Happens In Reality ● Harder To Standardize ○ Multiple Code bases ○ Duplicated Code Bases ● Serialization and communication overhead ● Lack of code reuse ● DevOps issues ● Tracing /Fragile system ● Overly Reliant on REST/JSON ● Client is up to the requestor ● Various instances of the same microservice (WEB SCALE) ● Fiefdoms Develop
  • 6. How did we get here? What can we do about it?
  • 7. Popular Frameworks for Enterprise Solutions Spring J2EE
  • 9. Modular Monolith ● Addressed the complexity issue that microservices solves ● Makes smaller modules within the system ● Addresses the network communication problem ● Relies on the build to put everything together ● It’s an easier step towards breaking up the monolith ● Domain Driven Design approach ● Local builds are easy to run locally
  • 10. Modular Monolith: Downsides ● Tooling is a bit difficult to handle (multiple dependencies with auto updates) ● A bit hard to extend and change design ● It’s still a “monolith.” * ● Cognitive Load still requires system level interaction
  • 12. Message Queuing ● Communication and Messaging is handled by a central communication service (the message queue) ● Separation of Responsibility ● Removes need for custom serialization ● Storage of communication *
  • 13. Message Queuing: Downsides ● Single Point of Failure ● Tracing (throughout the system) requires a lot of logging ● Replying to a request may get complicated ● Versioning becomes difficult
  • 15. Pipeline and Nodes ● Isolation of processing and service delivery ● Handles the processing of requests without slowing down other users ● Very Fast Requests ● Can handle complicated requests ● Easy to scale up ● Workflows-like design ● Smaller components to handle logic
  • 16. Pipeline and Nodes: The Downsides ● Hard on databases ● Doesn’t handle state well ● Consensus and Split Brain Issues ● Large Memory Requirements ● Not great for round trips on live requests for large transformations ● Still requires a bit of Devops setup (Less so than microservices)

Editor's Notes

  1. Hi my name is Steven Hicks I have been developing software as a hobby and professionally for nearly 20+ years. I’ve done development with full stack, embedded systems, and have done big data. Lets smooth this out a bit later
  2. Go into how they were constructed as an application in a box approach Both of these approaches cobbled together a lot of technologies under the same system. Spring with it’s core + all of it’s extensions. J2EE with it’s acronym soup
  3. Technologies to bring in: OSGI Strict building