Dictionary of Modernization
"This strategy calls for a complete overhaul of an application to adapt it to the cloud. It is valuable when you have a strong business need for cloud-native features, such as improved development agility, scalability or performance. In many cases, refactoring involves breaking up the application into independent services and transitioning to a microservices architecture. Refactoring / rearchitecting is the migration strategy that involves the highest costs, the biggest effort and also the most risk. But in reality, many if not most applications end up being refactored for the cloud, either before migration or after. Refactoring is not a binary decision, it’s more a question of when—at which point will you reach the tipping point where cloud-native features will outweigh the effort and disruption caused by a refactoring project."