If you read my last article, the big deal with headless, you know that the big deal is performance. The architecture you get leveraging a headless architecture with Next.js front end is fundamentally superior to MVC. When you are ready to make the move to headless, you may be surprised that there isn’t just one way to do it.
Sitecore offers multiple options for implementing headless architecture, each catering to different needs and scenarios. Organizations can choose the option that best aligns with their existing Sitecore setup, licensing preferences, performance requirements, and the desired feature set, whether it’s a more traditional XM or XP topology with Sitecore Headless Services, the performance-driven Experience Edge for XM, or the fully SaaS XM Cloud offering with advanced content management & personalization capabilities.
Option 1: Sitecore Headless Services for XM and XP Topologies
Sitecore Headless Services is compatible with both XM (Experience Management) and XP (Experience Platform) topologies, offering flexibility to organizations using either edition. It adds GraphQL and Layout APIs to the CD (Content Delivery) servers, reducing the load when compared to full rendering pipelines. This means that the CD servers only need to server APIs for front-end applications reducing their overall load.
Keep in mind that hosting your front-end application requires a new piece of infrastructure: the Rendering Host. This component hosts the front-end applications that consume content through the headless services. We typically recommend a serverless platform like Vercel or Netlify to make it easier to deploy and scale this application. These platforms have the distribution needed to drive better performance than you trying to manage it yourself.
Although this topology technically supports XP, in order to leverage features like analytics and personalization, your pages will need to be server-side rendered, which isn’t as efficient as server-side generation and incremental static generation. Although you can implement components using these strategies, it can quickly lead to confusion if some components support and others do not support personalization. We highly recommend looking into SaaS optimization platforms like CDP and Personalize for this reason.
Usually, Sitecore Headless Services can be implemented using the current licensing model, providing a seamless transition for existing Sitecore users, however, we have seen clients on perpetual licenses need to negotiate with Sitecore to add this capability to their license.
Option 2: XM with Experience Edge
Although performance will be better than a traditional MVC implementation, there are a few areas in the architecture of option 1 that could be improved. The dependence on CD servers to serve the APIs to the front-end service forces you to manage and scale those servers to support the load. The API’s themselves run in a similar pipeline and are managed by similar caching strategies to traditional MVC solutions.
Macro Trends in Sitecore and DXP
Over the past few years, Sitecore has transformed its architecture, offerings, and vernacular. The DXP landscape is evolving and organizations are increasingly embracing these changes. This guide explores six emerging trends in Sitecore and the DXP landscape.
Alternatively, you can add Sitecore’s Experience Edge to your architecture. Experience Edge introduces a new publishing target that significantly enhances performance by storing content in Sitecore’s Distributed Edge Cache, reducing the need for traditional CD servers and Web databases.
It is important to note that this “publish time” caching of the content and relationship between pages and their data sources also helps drive better performance, but also requires content authors to understand how this works. Instead of updating a child data source and publishing that, they need to go republish the page it belongs to to properly update the cached version of the page.
While it streamlines the architecture by eliminating the requirement for CD servers and Web databases, organizations can choose to implement both, if custom APIs or advanced search functionalities are needed. Keep in mind doing this may lead to inconsistency issues if the same content is not published to both the web database and Experience Edge.
Accelerating Content Delivery
Experience Edge accelerates content delivery but does not support Sitecore Analytics or Marketing features. This makes sense if you think about it, as your front-end application is getting cached versions of the content at the time of publishing from an edge service. There is no use context or rules to execute in this context. This is another reason why we recommend looking into SaaS optimization platforms like CDP and Personalize.
Implementing Experience Edge requires additional licensing beyond the standard Sitecore licensing, reflecting the added performance enhancements it offers.
Option 3: XM Cloud
XM Cloud is a fully SaaS (Software as a Service) solution that only supports headless architectures. It includes Experience Edge as part of the package, offering the same benefits mentioned in Option 2. Additionally, it provides a host of new features not available on the platform DXP offerings. With XM Cloud, your CM (Content Management) server is hosted and managed by Sitecore. You publish to Experience Edge and deploy front-end applications that consume those API’s.
There are no CD servers in this architecture or an option to add them. There are also no “Web DB” or SOLR indexes as well. The implications of this fact will need to be reflected in your solution architecture. API’s will need to be built in either the front-end application (service managed by Next.js) or a middle-tier app services.
If you have search requirements, you need to consider a composable search solution like Sitecore Search or Coveo. Although GraphQL can support basic search and list scenarios, for anything more advanced you’ll need something more capable. Read my article on making sense of search options in Sitecore for more details.
That being said, there are plenty of reasons that make XM cloud the best platform for you. You can get the best performance of the three options and never have to upgrade the platform. Sitecore has traditionally released a new major version every year and most clients go through an upgrade cycle every 3 years since the upgrade process can be heavy involving standing up new infrastructure, upgrading the solution, and redeploying it. See Martin Miles Upgrade guide for more details.
Features, Enhancements, and Moving into the Future of Sitecore
Instead, you’ll get new features automatically. These features are released multiple times a month. Look at the XM Cloud changelog to see what kind of things are being done. There have been several impressive enhancements over the last few months including adding support for SSO and new features like Sitecore Components currently in preview.
It’s important to note that a lot of these enhancements are being made to related XM Cloud SaaS Applications, like Sitecore Deploy and Sitecore Pages do not impact the customizations you’ve made to your CM environment at all. When changes are made to CM, they are done to the root Container Images and can be tested and rolled out only when you want to.
Speaking of Sitecore Pages, it is clear that XM cloud is where Sitecore sees its future. Its next-generation authoring environment: Sitecore Sites and Pages provides a better and faster content authoring experience that Experience editor (which is still supported in XM Cloud).
XM Cloud is where Sitecore is innovating. Sitecore Components, their new Front end as a service component builder is currently in preview and will allow marketers to quickly create and publish new components without the need for a developer.
XM Cloud even comes with a lightweight version of Sitecore Personalize, allowing for page-level personalization and providing basic analytics capabilities. Megan Jensen broke down the personalization capabilities of XM Cloud in a blog post earlier this year.
Choosing Your Own Adventure
Sitecore gives us a few different options for implementing headless solutions. XM Cloud is probably the most compelling one, but there may be reasons for looking at options 1 and 2. If you do go that route, I advise you to consider the architecture implications that I mentioned for XM cloud and solve for them to avoid them being a barrier for adoption down the road.
Given the SaaS nature of XM cloud and the number of enhancements being added every month and features already known to be on its roadmap, it’s a matter of time before that offering is compelling enough for every solution to consider moving to.