Sitecore XM Cloud, with its supporting composable ecosystem, has some compelling offerings. When leaving the worries of hosting VMs or managing PaaS behind in order to embrace flexible and scalable headless deployments, there are a few options for how to prepare for XM Cloud… bearing in mind that a careful evaluation to determine if XM Cloud is right for you should be undertaken first.
Option 1: Refactor to Helix and Massive Technical Debt Reduction
Refactoring your solution… whether on Prem, VMs, or PaaS… to a Helix modular architecture design pattern helps to break apart your application into logical layers. While XM Cloud with its headless component architecture is unlikely to adhere to the MVC focused Helix pattern, having a modular design pattern still enables a much smoother transition.
With an API First approach/Webhooks and more abstraction in XM Cloud/Headless, it’s imperative to reduce your technical debt. This is the time to “go slow to go faster” by cleaning up any workarounds, half-baked code, and configuration issues so that your feature layer becomes more like a Service Oriented Architecture (SOA) in preparation for XM Cloud.
Option 2: Leapfrog from PaaS to SaaS with Hybrid Headless Delivery
You can run Headless services in Sitecore PaaS with a hybrid architecture approach. The advantage of this method is that you can decouple the backend code into your PaaS App Services and let Front End Developers focus to React components and headless delivery via Experience Edge. This assumes you have already taken advantage of a modular design pattern. It may also be helpful to embrace Sitecore version 10.3 to take advantage of an API First approach/Webhooks while leveraging the same Sitecore base in use by XM Cloud – Sitecore Downloads: Sitecore Experience Platform 103
Taking this hybrid approach allows a smoother “iterative” transition to XM Cloud.
Option 3: Full Go to XM Cloud
The full go preparation is detailing out your roadmap and project plan to fully refactor your Sitecore implementation in XM Cloud. This requires a lot of careful planning, technical debt reduction, and training/standardization to ensure proper governance of your application in a SaaS offering. This should be a “Greenfield” like approach where any code previously developed is only used an example and fully refactored, less you end up in a “Brownfield” situation that often fails to deliver on its promises.