SlideShare a Scribd company logo
November 27, 2017 1DXC Proprietary and ConfidentialDXC Proprietary and Confidential
November 27, 2017
The Decomposition
Dilemma
Microservices Days Austin
@jpmorgenthal
#microservicesdays
November 27, 2017 2DXC Proprietary and Confidential
Why µServices?
Application Server
Bundle 1
Bundle 2
Bundle 3
Database
User Interface
Back-end
DBA
Legacy Apps
November 27, 2017 3DXC Proprietary and Confidential
Conway’s Law
Organizations which design systems ... are
constrained to produce designs which are
copies of the communication structures of
these organizations
Solution
Application
November 27, 2017 4DXC Proprietary and Confidential
To decompose or not to
decompose, that is the
question!
November 27, 2017 5DXC Proprietary and Confidential
Decomposition Strategy
1. Start with bounded contexts
2. Trace dependencies to bottom
3. Address messaging, injection and external configuration impact
4. Extract the data
5. Deploy and test often
November 27, 2017 6DXC Proprietary and Confidential
Think Contextual Boundaries
Entertainment
Enterprise
Customer
Network
Customer
Customer
Customer Management
November 27, 2017 7DXC Proprietary and Confidential
Think Contextual Boundaries
Subscriber
Provider
Payment
Payment Processor
Payment
Payment
Billing
Billing
November 27, 2017 8DXC Proprietary and Confidential
Think Contextual Boundaries
Subscriber
Provider
Payment
Payment Processor
Payment
Payment
Billing
Billing
Prepare
November 27, 2017 9DXC Proprietary and Confidential
Think Contextual Boundaries
Subscriber
Provider
Payment
Payment Processor
Payment
Payment
Billing
Billing
PrepareDeliver
November 27, 2017 10DXC Proprietary and Confidential
Think Contextual Boundaries
Subscriber
Provider
Payment
Payment Processor
Payment
Payment
Billing
Billing
Process
Process
Receive
November 27, 2017 11DXC Proprietary and Confidential
Think Contextual Boundaries
Subscriber
Provider
Payment
Payment Processor
Payment
Payment
Billing
Billing
Process
Process
Receive
November 27, 2017 12DXC Proprietary and Confidential
Think Contextual Boundaries
Subscriber
Provider
Payment
Payment Processor
Payment
Payment
Billing
Billing
Process
Process
Receive
November 27, 2017 13DXC Proprietary and Confidential
Shift from objects to resources
TurnLightOff();
{
“state”: “off”
}
https://…/lightswitch/1921
November 27, 2017 14DXC Proprietary and Confidential
Trace dependencies
• Monoliths form entanglements around persistence of data
• Monoliths expect that various functions data all exist in same repository
• Monoliths have code dependencies
• Monoliths share data structures to ensure consistency of data representation
• Monoliths maintain direct connections with services
• Database, messaging, logging, etc.
• Carving out a business context often requires these entanglements to be identified and
decomposition may require multiple interim states before the microservice can become
completely atomic
November 27, 2017 15DXC Proprietary and Confidential
Untangling the data
Application Server
Bundle 1
Bundle 2
Bundle 3
Database
Legacy Apps
µService
µService
November 27, 2017 16DXC Proprietary and Confidential
Untangling MOM, injection and Aspect-Oriented
Programming
• Aspects change behavior of the application dynamically for cross-cutting concerns in code whereas
microservices introduce cross-cutting concerns through orchestration
• Common shared objects often lead to the creation of dependencies that led to the monolith in
the first place
• Interception of events can help to strangle the original logic and facilitate growth of the new
microservice
• Monoliths often use injection as a means of configuration often furthering the entanglements
• There are no tools to help reverse engineer the necessary injection parameters
• Messaging middleware, such XPDL and Camel embed business logic in XML process and mapping
files
• There are no tools to help reverse engineer the logic trapped in these files and models
• You can’t tell if there’s relative aspects of your bounded contexts captured within the XPDL and
Camel Models
November 27, 2017 17DXC Proprietary and Confidential
Summary
• Decomposition may not always be appropriate for the business
• Drivers for microservices are speed, cost, quality and user experience
• Bounded contexts may not easily be extracted from the monolith without significant
rework
• Develop a plan to move from objects/functions to assets
• Identify and untangle dependencies
• Strangler pattern is just abstraction in action
November 27, 2017 18DXC Proprietary and ConfidentialDXC Proprietary and Confidential
November 27, 2017
Thank you!

More Related Content

What's hot

Machine learning for encrypted traffic using restnet
Machine learning for encrypted traffic using restnetMachine learning for encrypted traffic using restnet
Machine learning for encrypted traffic using restnet
madhucharis
 
Blockchain & the future of data management
Blockchain & the future of data managementBlockchain & the future of data management
Blockchain & the future of data management
ElleLeslie2
 
An efficient certificateless encryption for data sharing on public cloud
An efficient certificateless encryption for data sharing on public cloudAn efficient certificateless encryption for data sharing on public cloud
An efficient certificateless encryption for data sharing on public cloud
Abhijeet Patil
 
An introduction for blockcahin
An introduction for blockcahinAn introduction for blockcahin
An introduction for blockcahin
学劢 俞
 
key-aggregate cryptosystem for scalable data sharing in cloud storage
key-aggregate cryptosystem for scalable data sharing in cloud storagekey-aggregate cryptosystem for scalable data sharing in cloud storage
key-aggregate cryptosystem for scalable data sharing in cloud storage
swathi78
 
Flowchain blockchain classroom at Taiwan Tech University
Flowchain blockchain classroom at Taiwan Tech UniversityFlowchain blockchain classroom at Taiwan Tech University
Flowchain blockchain classroom at Taiwan Tech University
Jollen Chen
 
IT 101 presentation
IT 101 presentationIT 101 presentation
IT 101 presentation
ChristinaLee207
 
Blockchain and Angular
Blockchain and AngularBlockchain and Angular
Blockchain and Angular
Michael John Peña
 
Call for Papers - 9th International Conference of Security, Privacy and Trust...
Call for Papers - 9th International Conference of Security, Privacy and Trust...Call for Papers - 9th International Conference of Security, Privacy and Trust...
Call for Papers - 9th International Conference of Security, Privacy and Trust...
IJNSA Journal
 
Is Azure Blockchain Cloud the Future of Cloud Computing | Sysfore
Is Azure Blockchain Cloud the Future of Cloud Computing | SysforeIs Azure Blockchain Cloud the Future of Cloud Computing | Sysfore
Is Azure Blockchain Cloud the Future of Cloud Computing | Sysfore
Sysfore Technologies
 
Enhance Your Mobile Application with The Use of Blockchain Technology
Enhance Your Mobile Application with The Use of Blockchain TechnologyEnhance Your Mobile Application with The Use of Blockchain Technology
Enhance Your Mobile Application with The Use of Blockchain Technology
DivyaConsagous
 
KEY AGGREGATE CRYPTOSYSTEM FOR SCALABLE DATA SHARING IN CLOUD
KEY AGGREGATE CRYPTOSYSTEM FOR SCALABLE DATA SHARING IN CLOUDKEY AGGREGATE CRYPTOSYSTEM FOR SCALABLE DATA SHARING IN CLOUD
KEY AGGREGATE CRYPTOSYSTEM FOR SCALABLE DATA SHARING IN CLOUD
Naseem nisar
 
Blockchain Essentials for Business Leaders - Value Propositions and Advantage...
Blockchain Essentials for Business Leaders - Value Propositions and Advantage...Blockchain Essentials for Business Leaders - Value Propositions and Advantage...
Blockchain Essentials for Business Leaders - Value Propositions and Advantage...
Gokul Alex
 
Towards a Post-Modern Hash Chain Future
Towards a Post-Modern Hash Chain FutureTowards a Post-Modern Hash Chain Future
Towards a Post-Modern Hash Chain Future
Casey Kuhlman
 
An efficient certificate less encryption for
An efficient certificate less encryption forAn efficient certificate less encryption for
An efficient certificate less encryption for
Shakas Technologies
 
Blockchain - New Buzz Word for Banks, Technology and Other Industries
Blockchain - New Buzz Word for Banks, Technology and Other IndustriesBlockchain - New Buzz Word for Banks, Technology and Other Industries
Blockchain - New Buzz Word for Banks, Technology and Other Industries
Ashish Saxena
 
Decentralised AI through Distributed Ledger Technologies
Decentralised AI through Distributed Ledger Technologies Decentralised AI through Distributed Ledger Technologies
Decentralised AI through Distributed Ledger Technologies
Gokul Alex
 
DN18 | Ocean Protocol – Empowering a Decentralized Marketplace for The New AI...
DN18 | Ocean Protocol – Empowering a Decentralized Marketplace for The New AI...DN18 | Ocean Protocol – Empowering a Decentralized Marketplace for The New AI...
DN18 | Ocean Protocol – Empowering a Decentralized Marketplace for The New AI...
Dataconomy Media
 
Learn from the Masters: Deep Dive into Domains (Jaspersoft's Metadata Layer)
Learn from the Masters: Deep Dive into Domains (Jaspersoft's Metadata Layer)Learn from the Masters: Deep Dive into Domains (Jaspersoft's Metadata Layer)
Learn from the Masters: Deep Dive into Domains (Jaspersoft's Metadata Layer)
TIBCO Jaspersoft
 

What's hot (19)

Machine learning for encrypted traffic using restnet
Machine learning for encrypted traffic using restnetMachine learning for encrypted traffic using restnet
Machine learning for encrypted traffic using restnet
 
Blockchain & the future of data management
Blockchain & the future of data managementBlockchain & the future of data management
Blockchain & the future of data management
 
An efficient certificateless encryption for data sharing on public cloud
An efficient certificateless encryption for data sharing on public cloudAn efficient certificateless encryption for data sharing on public cloud
An efficient certificateless encryption for data sharing on public cloud
 
An introduction for blockcahin
An introduction for blockcahinAn introduction for blockcahin
An introduction for blockcahin
 
key-aggregate cryptosystem for scalable data sharing in cloud storage
key-aggregate cryptosystem for scalable data sharing in cloud storagekey-aggregate cryptosystem for scalable data sharing in cloud storage
key-aggregate cryptosystem for scalable data sharing in cloud storage
 
Flowchain blockchain classroom at Taiwan Tech University
Flowchain blockchain classroom at Taiwan Tech UniversityFlowchain blockchain classroom at Taiwan Tech University
Flowchain blockchain classroom at Taiwan Tech University
 
IT 101 presentation
IT 101 presentationIT 101 presentation
IT 101 presentation
 
Blockchain and Angular
Blockchain and AngularBlockchain and Angular
Blockchain and Angular
 
Call for Papers - 9th International Conference of Security, Privacy and Trust...
Call for Papers - 9th International Conference of Security, Privacy and Trust...Call for Papers - 9th International Conference of Security, Privacy and Trust...
Call for Papers - 9th International Conference of Security, Privacy and Trust...
 
Is Azure Blockchain Cloud the Future of Cloud Computing | Sysfore
Is Azure Blockchain Cloud the Future of Cloud Computing | SysforeIs Azure Blockchain Cloud the Future of Cloud Computing | Sysfore
Is Azure Blockchain Cloud the Future of Cloud Computing | Sysfore
 
Enhance Your Mobile Application with The Use of Blockchain Technology
Enhance Your Mobile Application with The Use of Blockchain TechnologyEnhance Your Mobile Application with The Use of Blockchain Technology
Enhance Your Mobile Application with The Use of Blockchain Technology
 
KEY AGGREGATE CRYPTOSYSTEM FOR SCALABLE DATA SHARING IN CLOUD
KEY AGGREGATE CRYPTOSYSTEM FOR SCALABLE DATA SHARING IN CLOUDKEY AGGREGATE CRYPTOSYSTEM FOR SCALABLE DATA SHARING IN CLOUD
KEY AGGREGATE CRYPTOSYSTEM FOR SCALABLE DATA SHARING IN CLOUD
 
Blockchain Essentials for Business Leaders - Value Propositions and Advantage...
Blockchain Essentials for Business Leaders - Value Propositions and Advantage...Blockchain Essentials for Business Leaders - Value Propositions and Advantage...
Blockchain Essentials for Business Leaders - Value Propositions and Advantage...
 
Towards a Post-Modern Hash Chain Future
Towards a Post-Modern Hash Chain FutureTowards a Post-Modern Hash Chain Future
Towards a Post-Modern Hash Chain Future
 
An efficient certificate less encryption for
An efficient certificate less encryption forAn efficient certificate less encryption for
An efficient certificate less encryption for
 
Blockchain - New Buzz Word for Banks, Technology and Other Industries
Blockchain - New Buzz Word for Banks, Technology and Other IndustriesBlockchain - New Buzz Word for Banks, Technology and Other Industries
Blockchain - New Buzz Word for Banks, Technology and Other Industries
 
Decentralised AI through Distributed Ledger Technologies
Decentralised AI through Distributed Ledger Technologies Decentralised AI through Distributed Ledger Technologies
Decentralised AI through Distributed Ledger Technologies
 
DN18 | Ocean Protocol – Empowering a Decentralized Marketplace for The New AI...
DN18 | Ocean Protocol – Empowering a Decentralized Marketplace for The New AI...DN18 | Ocean Protocol – Empowering a Decentralized Marketplace for The New AI...
DN18 | Ocean Protocol – Empowering a Decentralized Marketplace for The New AI...
 
Learn from the Masters: Deep Dive into Domains (Jaspersoft's Metadata Layer)
Learn from the Masters: Deep Dive into Domains (Jaspersoft's Metadata Layer)Learn from the Masters: Deep Dive into Domains (Jaspersoft's Metadata Layer)
Learn from the Masters: Deep Dive into Domains (Jaspersoft's Metadata Layer)
 

Similar to The Decomposition Dilemma

Micro services Architecture
Micro services ArchitectureMicro services Architecture
Micro services Architecture
Araf Karsh Hamid
 
Paolo Kreth - Persistence layers for microservices – the converged database a...
Paolo Kreth - Persistence layers for microservices – the converged database a...Paolo Kreth - Persistence layers for microservices – the converged database a...
Paolo Kreth - Persistence layers for microservices – the converged database a...
matteo mazzeri
 
AUTOMATIC TRANSFER OF DATA USING SERVICE-ORIENTED ARCHITECTURE TO NoSQL DATAB...
AUTOMATIC TRANSFER OF DATA USING SERVICE-ORIENTED ARCHITECTURE TO NoSQL DATAB...AUTOMATIC TRANSFER OF DATA USING SERVICE-ORIENTED ARCHITECTURE TO NoSQL DATAB...
AUTOMATIC TRANSFER OF DATA USING SERVICE-ORIENTED ARCHITECTURE TO NoSQL DATAB...
IRJET Journal
 
[DataCon.TW 2017] Data Lake: centralize in on-prem vs. decentralize on cloud
[DataCon.TW 2017] Data Lake: centralize in on-prem vs. decentralize on cloud[DataCon.TW 2017] Data Lake: centralize in on-prem vs. decentralize on cloud
[DataCon.TW 2017] Data Lake: centralize in on-prem vs. decentralize on cloud
Jeff Hung
 
GOTO Amsterdam 2017 - Enterprise Fast Lane
GOTO Amsterdam 2017 - Enterprise Fast LaneGOTO Amsterdam 2017 - Enterprise Fast Lane
GOTO Amsterdam 2017 - Enterprise Fast Lane
Christian Deger
 
Going MicroServices with Net
Going MicroServices with NetGoing MicroServices with Net
Going MicroServices with Net
David Revoledo
 
2017 think - session 4085 - increase your agile velocity - integrate your d...
2017   think - session 4085 - increase your agile velocity - integrate your d...2017   think - session 4085 - increase your agile velocity - integrate your d...
2017 think - session 4085 - increase your agile velocity - integrate your d...
M Kevin McHugh
 
Converged and Containerized Distributed Deep Learning With TensorFlow and Kub...
Converged and Containerized Distributed Deep Learning With TensorFlow and Kub...Converged and Containerized Distributed Deep Learning With TensorFlow and Kub...
Converged and Containerized Distributed Deep Learning With TensorFlow and Kub...
Mathieu Dumoulin
 
Microservices Architecture - Cloud Native Apps
Microservices Architecture - Cloud Native AppsMicroservices Architecture - Cloud Native Apps
Microservices Architecture - Cloud Native Apps
Araf Karsh Hamid
 
Microservices Architecture - Bangkok 2018
Microservices Architecture - Bangkok 2018Microservices Architecture - Bangkok 2018
Microservices Architecture - Bangkok 2018
Araf Karsh Hamid
 
Intro to Microservices - SimtTLiX Tech Talk
Intro to Microservices - SimtTLiX Tech TalkIntro to Microservices - SimtTLiX Tech Talk
Intro to Microservices - SimtTLiX Tech Talk
Leo Marzo
 
3170722_BDA_GTU_Study_Material_Presentations_Unit-3_29092021094744AM.pdf
3170722_BDA_GTU_Study_Material_Presentations_Unit-3_29092021094744AM.pdf3170722_BDA_GTU_Study_Material_Presentations_Unit-3_29092021094744AM.pdf
3170722_BDA_GTU_Study_Material_Presentations_Unit-3_29092021094744AM.pdf
KrishnaShah908060
 
From Microservices to Service Mesh - devcafe event - July 2018
From Microservices to Service Mesh - devcafe event - July 2018From Microservices to Service Mesh - devcafe event - July 2018
From Microservices to Service Mesh - devcafe event - July 2018
Thang Chung
 
CWIN17 Utrecht / cg u services - frank van der wal
CWIN17 Utrecht / cg u services - frank van der walCWIN17 Utrecht / cg u services - frank van der wal
CWIN17 Utrecht / cg u services - frank van der wal
Capgemini
 
Cloud Customer Architecture for Big Data and Analytics V2.0
Cloud Customer Architecture for Big Data and Analytics V2.0Cloud Customer Architecture for Big Data and Analytics V2.0
Cloud Customer Architecture for Big Data and Analytics V2.0
Cloud Standards Customer Council
 
Vancouver Microservices Meetup - Kickoff Session
Vancouver Microservices Meetup - Kickoff SessionVancouver Microservices Meetup - Kickoff Session
Vancouver Microservices Meetup - Kickoff Session
Matt McLarty
 
Domain Driven Design - Building Blocks
Domain Driven Design - Building BlocksDomain Driven Design - Building Blocks
Domain Driven Design - Building Blocks
Mark Windholtz
 
The Value of Metadata
The Value of MetadataThe Value of Metadata
The Value of Metadata
DATAVERSITY
 
Microservices Patterns with GoldenGate
Microservices Patterns with GoldenGateMicroservices Patterns with GoldenGate
Microservices Patterns with GoldenGate
Jeffrey T. Pollock
 
MuCon 2015 - Microservices in Integration Architecture
MuCon 2015 - Microservices in Integration ArchitectureMuCon 2015 - Microservices in Integration Architecture
MuCon 2015 - Microservices in Integration Architecture
Kim Clark
 

Similar to The Decomposition Dilemma (20)

Micro services Architecture
Micro services ArchitectureMicro services Architecture
Micro services Architecture
 
Paolo Kreth - Persistence layers for microservices – the converged database a...
Paolo Kreth - Persistence layers for microservices – the converged database a...Paolo Kreth - Persistence layers for microservices – the converged database a...
Paolo Kreth - Persistence layers for microservices – the converged database a...
 
AUTOMATIC TRANSFER OF DATA USING SERVICE-ORIENTED ARCHITECTURE TO NoSQL DATAB...
AUTOMATIC TRANSFER OF DATA USING SERVICE-ORIENTED ARCHITECTURE TO NoSQL DATAB...AUTOMATIC TRANSFER OF DATA USING SERVICE-ORIENTED ARCHITECTURE TO NoSQL DATAB...
AUTOMATIC TRANSFER OF DATA USING SERVICE-ORIENTED ARCHITECTURE TO NoSQL DATAB...
 
[DataCon.TW 2017] Data Lake: centralize in on-prem vs. decentralize on cloud
[DataCon.TW 2017] Data Lake: centralize in on-prem vs. decentralize on cloud[DataCon.TW 2017] Data Lake: centralize in on-prem vs. decentralize on cloud
[DataCon.TW 2017] Data Lake: centralize in on-prem vs. decentralize on cloud
 
GOTO Amsterdam 2017 - Enterprise Fast Lane
GOTO Amsterdam 2017 - Enterprise Fast LaneGOTO Amsterdam 2017 - Enterprise Fast Lane
GOTO Amsterdam 2017 - Enterprise Fast Lane
 
Going MicroServices with Net
Going MicroServices with NetGoing MicroServices with Net
Going MicroServices with Net
 
2017 think - session 4085 - increase your agile velocity - integrate your d...
2017   think - session 4085 - increase your agile velocity - integrate your d...2017   think - session 4085 - increase your agile velocity - integrate your d...
2017 think - session 4085 - increase your agile velocity - integrate your d...
 
Converged and Containerized Distributed Deep Learning With TensorFlow and Kub...
Converged and Containerized Distributed Deep Learning With TensorFlow and Kub...Converged and Containerized Distributed Deep Learning With TensorFlow and Kub...
Converged and Containerized Distributed Deep Learning With TensorFlow and Kub...
 
Microservices Architecture - Cloud Native Apps
Microservices Architecture - Cloud Native AppsMicroservices Architecture - Cloud Native Apps
Microservices Architecture - Cloud Native Apps
 
Microservices Architecture - Bangkok 2018
Microservices Architecture - Bangkok 2018Microservices Architecture - Bangkok 2018
Microservices Architecture - Bangkok 2018
 
Intro to Microservices - SimtTLiX Tech Talk
Intro to Microservices - SimtTLiX Tech TalkIntro to Microservices - SimtTLiX Tech Talk
Intro to Microservices - SimtTLiX Tech Talk
 
3170722_BDA_GTU_Study_Material_Presentations_Unit-3_29092021094744AM.pdf
3170722_BDA_GTU_Study_Material_Presentations_Unit-3_29092021094744AM.pdf3170722_BDA_GTU_Study_Material_Presentations_Unit-3_29092021094744AM.pdf
3170722_BDA_GTU_Study_Material_Presentations_Unit-3_29092021094744AM.pdf
 
From Microservices to Service Mesh - devcafe event - July 2018
From Microservices to Service Mesh - devcafe event - July 2018From Microservices to Service Mesh - devcafe event - July 2018
From Microservices to Service Mesh - devcafe event - July 2018
 
CWIN17 Utrecht / cg u services - frank van der wal
CWIN17 Utrecht / cg u services - frank van der walCWIN17 Utrecht / cg u services - frank van der wal
CWIN17 Utrecht / cg u services - frank van der wal
 
Cloud Customer Architecture for Big Data and Analytics V2.0
Cloud Customer Architecture for Big Data and Analytics V2.0Cloud Customer Architecture for Big Data and Analytics V2.0
Cloud Customer Architecture for Big Data and Analytics V2.0
 
Vancouver Microservices Meetup - Kickoff Session
Vancouver Microservices Meetup - Kickoff SessionVancouver Microservices Meetup - Kickoff Session
Vancouver Microservices Meetup - Kickoff Session
 
Domain Driven Design - Building Blocks
Domain Driven Design - Building BlocksDomain Driven Design - Building Blocks
Domain Driven Design - Building Blocks
 
The Value of Metadata
The Value of MetadataThe Value of Metadata
The Value of Metadata
 
Microservices Patterns with GoldenGate
Microservices Patterns with GoldenGateMicroservices Patterns with GoldenGate
Microservices Patterns with GoldenGate
 
MuCon 2015 - Microservices in Integration Architecture
MuCon 2015 - Microservices in Integration ArchitectureMuCon 2015 - Microservices in Integration Architecture
MuCon 2015 - Microservices in Integration Architecture
 

More from JoAnna Cheshire

The Future of Work
The Future of WorkThe Future of Work
The Future of Work
JoAnna Cheshire
 
Catching the Next Train
Catching the Next TrainCatching the Next Train
Catching the Next Train
JoAnna Cheshire
 
The SharePoint Migration Playbook
The SharePoint Migration PlaybookThe SharePoint Migration Playbook
The SharePoint Migration Playbook
JoAnna Cheshire
 
Introduction to SharePoint Framework
Introduction to SharePoint FrameworkIntroduction to SharePoint Framework
Introduction to SharePoint Framework
JoAnna Cheshire
 
PowerShell + SharePoint Online - An Admin's Guide
PowerShell + SharePoint Online - An Admin's GuidePowerShell + SharePoint Online - An Admin's Guide
PowerShell + SharePoint Online - An Admin's Guide
JoAnna Cheshire
 
Artificial Intelligence & Machine Learning - A CIOs Perspective
Artificial Intelligence & Machine Learning - A CIOs PerspectiveArtificial Intelligence & Machine Learning - A CIOs Perspective
Artificial Intelligence & Machine Learning - A CIOs Perspective
JoAnna Cheshire
 
Modernizing Data Management
Modernizing Data Management Modernizing Data Management
Modernizing Data Management
JoAnna Cheshire
 
Microsoft and Enterprise Search
Microsoft and Enterprise Search Microsoft and Enterprise Search
Microsoft and Enterprise Search
JoAnna Cheshire
 
Introduction to Microsoft Teams and Office 365 groups
Introduction to Microsoft Teams and Office 365 groupsIntroduction to Microsoft Teams and Office 365 groups
Introduction to Microsoft Teams and Office 365 groups
JoAnna Cheshire
 
Cybersecurity crisis management a prep guide
Cybersecurity crisis management   a prep guideCybersecurity crisis management   a prep guide
Cybersecurity crisis management a prep guide
JoAnna Cheshire
 
Accelerate your business with flow
Accelerate your business with flowAccelerate your business with flow
Accelerate your business with flow
JoAnna Cheshire
 
Building applications for your business using power apps and flow
Building applications for your business using power apps and flowBuilding applications for your business using power apps and flow
Building applications for your business using power apps and flow
JoAnna Cheshire
 
Not "If" but "When"
Not "If" but "When"Not "If" but "When"
Not "If" but "When"
JoAnna Cheshire
 
Defending against Ransomware and what you can do about it
Defending against Ransomware and what you can do about itDefending against Ransomware and what you can do about it
Defending against Ransomware and what you can do about it
JoAnna Cheshire
 
The New Convergence of Data; the Next Strategic Business Advantage
The New Convergence of Data; the Next Strategic Business AdvantageThe New Convergence of Data; the Next Strategic Business Advantage
The New Convergence of Data; the Next Strategic Business Advantage
JoAnna Cheshire
 
Healthcare - An Identity Thief's SuperStore
Healthcare - An Identity Thief's SuperStoreHealthcare - An Identity Thief's SuperStore
Healthcare - An Identity Thief's SuperStore
JoAnna Cheshire
 
Microservices Architectural Maturity Matrix, Token Based Authority, API Gatew...
Microservices Architectural Maturity Matrix, Token Based Authority, API Gatew...Microservices Architectural Maturity Matrix, Token Based Authority, API Gatew...
Microservices Architectural Maturity Matrix, Token Based Authority, API Gatew...
JoAnna Cheshire
 
Define Yourself! Crafting a Wonder Woman's Brand
Define Yourself! Crafting a Wonder Woman's BrandDefine Yourself! Crafting a Wonder Woman's Brand
Define Yourself! Crafting a Wonder Woman's Brand
JoAnna Cheshire
 
Today's Cyber Challenges: Methodology to Secure Your Business
Today's Cyber Challenges: Methodology to Secure Your BusinessToday's Cyber Challenges: Methodology to Secure Your Business
Today's Cyber Challenges: Methodology to Secure Your Business
JoAnna Cheshire
 
A UX first approach to Office 365 migrations
A UX first approach to Office 365 migrationsA UX first approach to Office 365 migrations
A UX first approach to Office 365 migrations
JoAnna Cheshire
 

More from JoAnna Cheshire (20)

The Future of Work
The Future of WorkThe Future of Work
The Future of Work
 
Catching the Next Train
Catching the Next TrainCatching the Next Train
Catching the Next Train
 
The SharePoint Migration Playbook
The SharePoint Migration PlaybookThe SharePoint Migration Playbook
The SharePoint Migration Playbook
 
Introduction to SharePoint Framework
Introduction to SharePoint FrameworkIntroduction to SharePoint Framework
Introduction to SharePoint Framework
 
PowerShell + SharePoint Online - An Admin's Guide
PowerShell + SharePoint Online - An Admin's GuidePowerShell + SharePoint Online - An Admin's Guide
PowerShell + SharePoint Online - An Admin's Guide
 
Artificial Intelligence & Machine Learning - A CIOs Perspective
Artificial Intelligence & Machine Learning - A CIOs PerspectiveArtificial Intelligence & Machine Learning - A CIOs Perspective
Artificial Intelligence & Machine Learning - A CIOs Perspective
 
Modernizing Data Management
Modernizing Data Management Modernizing Data Management
Modernizing Data Management
 
Microsoft and Enterprise Search
Microsoft and Enterprise Search Microsoft and Enterprise Search
Microsoft and Enterprise Search
 
Introduction to Microsoft Teams and Office 365 groups
Introduction to Microsoft Teams and Office 365 groupsIntroduction to Microsoft Teams and Office 365 groups
Introduction to Microsoft Teams and Office 365 groups
 
Cybersecurity crisis management a prep guide
Cybersecurity crisis management   a prep guideCybersecurity crisis management   a prep guide
Cybersecurity crisis management a prep guide
 
Accelerate your business with flow
Accelerate your business with flowAccelerate your business with flow
Accelerate your business with flow
 
Building applications for your business using power apps and flow
Building applications for your business using power apps and flowBuilding applications for your business using power apps and flow
Building applications for your business using power apps and flow
 
Not "If" but "When"
Not "If" but "When"Not "If" but "When"
Not "If" but "When"
 
Defending against Ransomware and what you can do about it
Defending against Ransomware and what you can do about itDefending against Ransomware and what you can do about it
Defending against Ransomware and what you can do about it
 
The New Convergence of Data; the Next Strategic Business Advantage
The New Convergence of Data; the Next Strategic Business AdvantageThe New Convergence of Data; the Next Strategic Business Advantage
The New Convergence of Data; the Next Strategic Business Advantage
 
Healthcare - An Identity Thief's SuperStore
Healthcare - An Identity Thief's SuperStoreHealthcare - An Identity Thief's SuperStore
Healthcare - An Identity Thief's SuperStore
 
Microservices Architectural Maturity Matrix, Token Based Authority, API Gatew...
Microservices Architectural Maturity Matrix, Token Based Authority, API Gatew...Microservices Architectural Maturity Matrix, Token Based Authority, API Gatew...
Microservices Architectural Maturity Matrix, Token Based Authority, API Gatew...
 
Define Yourself! Crafting a Wonder Woman's Brand
Define Yourself! Crafting a Wonder Woman's BrandDefine Yourself! Crafting a Wonder Woman's Brand
Define Yourself! Crafting a Wonder Woman's Brand
 
Today's Cyber Challenges: Methodology to Secure Your Business
Today's Cyber Challenges: Methodology to Secure Your BusinessToday's Cyber Challenges: Methodology to Secure Your Business
Today's Cyber Challenges: Methodology to Secure Your Business
 
A UX first approach to Office 365 migrations
A UX first approach to Office 365 migrationsA UX first approach to Office 365 migrations
A UX first approach to Office 365 migrations
 

Recently uploaded

DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
ThomasParaiso2
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Vladimir Iglovikov, Ph.D.
 

Recently uploaded (20)

DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
 

The Decomposition Dilemma

  • 1. November 27, 2017 1DXC Proprietary and ConfidentialDXC Proprietary and Confidential November 27, 2017 The Decomposition Dilemma Microservices Days Austin @jpmorgenthal #microservicesdays
  • 2. November 27, 2017 2DXC Proprietary and Confidential Why µServices? Application Server Bundle 1 Bundle 2 Bundle 3 Database User Interface Back-end DBA Legacy Apps
  • 3. November 27, 2017 3DXC Proprietary and Confidential Conway’s Law Organizations which design systems ... are constrained to produce designs which are copies of the communication structures of these organizations Solution Application
  • 4. November 27, 2017 4DXC Proprietary and Confidential To decompose or not to decompose, that is the question!
  • 5. November 27, 2017 5DXC Proprietary and Confidential Decomposition Strategy 1. Start with bounded contexts 2. Trace dependencies to bottom 3. Address messaging, injection and external configuration impact 4. Extract the data 5. Deploy and test often
  • 6. November 27, 2017 6DXC Proprietary and Confidential Think Contextual Boundaries Entertainment Enterprise Customer Network Customer Customer Customer Management
  • 7. November 27, 2017 7DXC Proprietary and Confidential Think Contextual Boundaries Subscriber Provider Payment Payment Processor Payment Payment Billing Billing
  • 8. November 27, 2017 8DXC Proprietary and Confidential Think Contextual Boundaries Subscriber Provider Payment Payment Processor Payment Payment Billing Billing Prepare
  • 9. November 27, 2017 9DXC Proprietary and Confidential Think Contextual Boundaries Subscriber Provider Payment Payment Processor Payment Payment Billing Billing PrepareDeliver
  • 10. November 27, 2017 10DXC Proprietary and Confidential Think Contextual Boundaries Subscriber Provider Payment Payment Processor Payment Payment Billing Billing Process Process Receive
  • 11. November 27, 2017 11DXC Proprietary and Confidential Think Contextual Boundaries Subscriber Provider Payment Payment Processor Payment Payment Billing Billing Process Process Receive
  • 12. November 27, 2017 12DXC Proprietary and Confidential Think Contextual Boundaries Subscriber Provider Payment Payment Processor Payment Payment Billing Billing Process Process Receive
  • 13. November 27, 2017 13DXC Proprietary and Confidential Shift from objects to resources TurnLightOff(); { “state”: “off” } https://…/lightswitch/1921
  • 14. November 27, 2017 14DXC Proprietary and Confidential Trace dependencies • Monoliths form entanglements around persistence of data • Monoliths expect that various functions data all exist in same repository • Monoliths have code dependencies • Monoliths share data structures to ensure consistency of data representation • Monoliths maintain direct connections with services • Database, messaging, logging, etc. • Carving out a business context often requires these entanglements to be identified and decomposition may require multiple interim states before the microservice can become completely atomic
  • 15. November 27, 2017 15DXC Proprietary and Confidential Untangling the data Application Server Bundle 1 Bundle 2 Bundle 3 Database Legacy Apps µService µService
  • 16. November 27, 2017 16DXC Proprietary and Confidential Untangling MOM, injection and Aspect-Oriented Programming • Aspects change behavior of the application dynamically for cross-cutting concerns in code whereas microservices introduce cross-cutting concerns through orchestration • Common shared objects often lead to the creation of dependencies that led to the monolith in the first place • Interception of events can help to strangle the original logic and facilitate growth of the new microservice • Monoliths often use injection as a means of configuration often furthering the entanglements • There are no tools to help reverse engineer the necessary injection parameters • Messaging middleware, such XPDL and Camel embed business logic in XML process and mapping files • There are no tools to help reverse engineer the logic trapped in these files and models • You can’t tell if there’s relative aspects of your bounded contexts captured within the XPDL and Camel Models
  • 17. November 27, 2017 17DXC Proprietary and Confidential Summary • Decomposition may not always be appropriate for the business • Drivers for microservices are speed, cost, quality and user experience • Bounded contexts may not easily be extracted from the monolith without significant rework • Develop a plan to move from objects/functions to assets • Identify and untangle dependencies • Strangler pattern is just abstraction in action
  • 18. November 27, 2017 18DXC Proprietary and ConfidentialDXC Proprietary and Confidential November 27, 2017 Thank you!

Editor's Notes

  1. This solution has a number of benefits: Simple to develop - the goal of current development tools and IDEs is to support the development of monolithic applications Simple to deploy - you simply need to deploy the WAR file (or directory hierarchy) on the appropriate runtime Simple to scale - you can scale the application by running multiple copies of the application behind a load balancer However, once the application becomes large and the team grows in size, this approach has a number of drawbacks that become increasingly significant: Continuous deployment is difficult - a large monolithic application is also an obstacle to frequent deployments. In order to update one component you have to redeploy the entire application. This will interrupt background tasks (e.g. Quartz jobs in a Java application), regardless of whether they are impacted by the change, and possibly cause problems. There is also the chance that components that haven’t been updated will fail to start correctly. As a result, the risk associated with redeployment increases, which discourages frequent updates. This is especially a problem for user interface developers, since they usually need to iterative rapidly and redeploy frequently. Scaling the application can be difficult - a monolithic architecture is that it can only scale in one dimension. On the one hand, it can scale with an increasing transaction volume by running more copies of the application. Some clouds can even adjust the number of instances dynamically based on load. But on the other hand, this architecture can’t scale with an increasing data volume. Each copy of application instance will access all of the data, which makes caching less effective and increases memory consumption and I/O traffic. Also, different application components have different resource requirements - one might be CPU intensive while another might memory intensive. With a monolithic architecture we cannot scale each component independently Obstacle to scaling development - A monolithic application is also an obstacle to scaling development. Once the application gets to a certain size its useful to divide up the engineering organization into teams that focus on specific functional areas. For example, we might want to have the UI team, accounting team, inventory team, etc. The trouble with a monolithic application is that it prevents the teams from working independently. The teams must coordinate their development efforts and redeployments. It is much more difficult for a team to make a change and update production. Requires a long-term commitment to a technology stack - a monolithic architecture forces you to be married to the technology stack (and in some cases, to a particular version of that technology) you chose at the start of development . With a monolithic application, can be difficult to incrementally adopt a newer technology. For example, let’s imagine that you chose the JVM. You have some language choices since as well as Java you can use other JVM languages that inter-operate nicely with Java such as Groovy and Scala. But components written in non-JVM languages do not have a place within your monolithic architecture. Also, if your application uses a platform framework that subsequently becomes obsolete then it can be challenging to incrementally migrate the application to a newer and better framework. It’s possible that in order to adopt a newer platform framework you have to rewrite the entire application, which is a risky undertaking.