Hours to Seconds: Experience Blazing-Fast Publishing in XM Cloud

I always felt that XM Cloud publishing (Also, Experience Edge) publishing needed some attention. I shared this feedback during the last MVP Summit, and the Sitecore product team confirmed that they are aware of this and are working on it. I’ve been looking forward to this.

As soon as I noticed this update in Change log : https://developers.sitecore.com/changelog/xm-cloud/faster-publishing-in-xm-cloud couldn’t resist to try this change on my test XM Cloud environment!

Here are the quick steps:

  1. Configure environment variable Sitecore_ExperienceEdge_dot_WorkerStoreEnabled to TRUE
  2. Deploy the environment
  3. Once the deployment competes, republish [only one time]

I wanted to spend some time validating and measuring these changes. So, I can see the progress and I also thought to share it with you too.

Note : Related items checked for all test and one language English has been selected. I would recommend to use these numbers as starting guidelines and perform testing in your environment as it might differ based on your setup.

Observations:

  • V2 Publishing reduces Publish Item [Smart Publish] time by 8-12% than V1/Default publishing
  • V2 Publishing reduces Publish Item [Republish with Sub-items] time by 14% than V1/Default publishing
  • V2 Publishing reduces Publish site [Republish] time by 22% than V1/Default publishing
  • V2 Publishing reduces Incremental Publishing time by 75-85% than V1/Default publishing

Remember, it’s experimental, so be sure to review your published links and report any language fallback issues. And you can always revert back to Default publishing by reverting “Sitecore_ExperienceEdge_dot_WorkerStoreEnabled” value to FALSE and then redeploy

If you are wondering how it works than following reply from Andy Cohen (System Architect, Edge & XM Cloud Deploy @ Sitecore) might answer your question:

we are splitting raw layout json structure from the data sources into 2 separate paths.  in the edge, we recombine the 2.  where the datasources have integrated graphql, those also get executed on the edge.

There is a tradeoff – and how you architect your app will have an affect on uncached rendering time.

We are not recombining partial layout at the edge at the moment.  If you modified the layout structure of the partials, the pages they exist on still would need to be published.  But if you had a component on your partial that had a datasource with a multilist field with a “Promo Content” field for example – and you updated that piece of content – you only have to publish that piece of content

If you are thinking will it work for Platform DXP client who is leveraging Experience Edge? Then Ivan Lieckens [Product Manager, Product Connectors @ Sitecore] comment should help:

 This is only for XMC right now until it’s stable. At that point we’ll backport it to Platform DXP. Keep in mind this is an experimental feature currently.

Happy Faster Publishing! 🙂


Sitecore MVP 2024 Award Unboxing

I am humbled and honored to be a #Sitecore Technology MVP 12 times in a row! (247 MVPs have been chosen by #sitecore for 2024 MVP)

My 2024 MVP award arrived, and I want to share the unboxing experience with you. Even though it’s my 12th MVP Award, the excitement level is still the same!

This year has been the fastest we’ve been able to get hands on our award. Thanks to Sitecore MVP Team for collaborating with Ladybug and making this process smoother and faster!

My purpose in sharing the unboxing experience is not to boast about the award, but to motivate you to earn one too someday! [Human needs motivation!]

Thanks MVP Team for the personalized letter [Big thanks to Tamas]
MVP Award along with nice goodies!
MVP 2024 Award has been added to the collection of awards
My 2 year old daughter loved the blanket!

I’m thankful for my family’s support, which allows me to share my passion with the community and help people solve their problems.

Thanks my readers for reading and supporting!

Thanks #SitecoreMVP Team for all the efforts to run this program!

Would you like to know more about Sitecore MVP Process. My following resources might help you:

I hope your journey goes well! I’d love to see you open your MVP Award Kit one day!

XM Cloud Architecture and Development Process

In the last post, we discussed XM Cloud Basics. In this post, we will talk about the Architecture and Development process

XM Cloud Architecture

Image Credits : Ruud van Falier
  1. Local Development has to be done using Containers. Sitecore recommends to use : Starer kit : https://github.com/sitecorelabs/xmcloud-foundation-head
  2. Git provider is supported by OOTB, which means if you use Git, you can leverage XM Cloud’s Auto deployment features. But if you are planning to use other providers then you need to use XM Cloud CLI
  3. Your Head will be hosted by Vercel, Netlify, Azure website, or custom hosting provider

When you configure the local container, you are running the following environment in your local:

Local Docker

If you double-click on it, this is what it looks like. Your backend changes will be mostly done using .NET Framework

Image Credits : Ruud van Falier

Starter kit file structure

This is how the file structure of Starter kit looks like

  1. Src contains all Backend items and serialized items
  2. sxastarter contains all Frontend items

When you start local development you have to start your local Sitecore container as well as the Frontend node server as depicted below:

Deploying to local container

When you are coding locally, you are still coding in an isolated directory, which needs to be deployed in your local Sitecore runtime environment. This is how that process works:

Image Credits: Sitecore
Deploy your code to the container

Component Development Process

I’ve listed down 4 steps component development process below:

You can also use Clone rendering, you just need to create next.js rendering file manually using same component name.

Commit your changes

Once your changes are validated commit all your changes [serialized items, configs, FED assets] and it will be deployed as per your XM Cloud Deploy Configurations.

Advanced Topics

Connect your local with Sitecore Pages

  1. Open https://pages.sitecorecloud.io/
  2. Go to Dev Toolbar | Local storage And add the following Key with Value
  3. Refresh https://pages.sitecorecloud.io/

Connect your local with Experience Edge

  1. Go to the sxastarter folder
    • Open .env.local – Add or update the following values
  2. To validate: Make changes on XM Cloud, Publish and refresh your local FED app – you should see the latest content
  3. Read: https://sitecorebasics.wordpress.com/2023/01/03/frontend-developer-setup-for-xm-cloud-in-2-minutes-using-github-codespaces/

Hope this helps!

Happy XM Clouding! 🙂

XM Cloud Basics

I have been privileged enough to lead XM Cloud Boot Camp at HZTL for 50+ Developers, Content Authors, QA, and BA Team members.

I had a great time learning XM Cloud and sharing my learnings with attendees. Everyone really liked the content and training.

I would like to share my learnings with you as well. So, it helps the broader community and makes your XM Cloud journey smooth.

There will be a series of posts on this topic, Starting from Development to Deployment. As we do on this blog, We start with basics. So, let’s delve into XM Cloud Basics!

XM Cloud High-Level Architecture

  1. Docker: To work with XM Cloud, you must use Docker for Local Development. Sitecore Provides a starter kit: https://github.com/sitecorelabs/xmcloud-foundation-head
  2. XM Cloud Comes with OOTB Editing Host: Your XM Cloud Instance connects with the OOTB editing host to provide all authoring experience [e.g. Preview, Experience Editor, Pages]. Think of it as a lightweight node.js app hosted by Sitecore for you.
  3. Sitecore CLI: XM Cloud is a SaaS platform. So, you can’t remote desktop into it. But Sitecore CLI is your friend and you can do all the required tasks using it. It also provides REST API.
  4. The major difference between XM Cloud and non-XM Cloud is Headless Architecture. XM Cloud has been built using Headless paradigms. That’s why you won’t see any CD Servers. Instead, you will have OOTB Experience Edge (Pre-configured and connected), Where your published content and layout will reside. You need to connect it with Modern FED hosting providers like Vercel, Netlify, Azure Static Website, etc.
  5. XM Cloud provides webhooks to integrate with other systems
  6. XM Cloud comes with a few new tools to elevate customer experience e.g. Component Builder, Pages, XM Cloud Deploy, Explorer

So, if you want to be XM Cloud Pro, you should learn the following technologies/tools:

  1. SXA
  2. JSS
  3. Containers
  4. Headless/JSS
  5. Experience Edge
  6. Sitecore CLI

Nomenclature of XM Cloud

Understanding the Nomenclature of XM Cloud is very important:

  1. XM Cloud Subscription: it all starts with your XM Cloud Subscription. One Login can have one or many subscriptions. For example, if you work for your company, you will have one subscription. But If you work for a Sitecore partner, you will have multiple client subscriptions. Which you can switch. Mostly, the Sitecore team will provision this for you. As of now, Sitecore XM Cloud is available in the following regions: Australia, East US, Japan, West EU, West US
  2. Project: One subscription can have more than one project. This is basically a container to help you create your environments
  3. Environments: One project can have more than one environment. e.g. Dev, QA, PROD
  4. Sites: XM Cloud supports multisite architecture

How many projects/environments you can create depends on your Sitecore Contract.

XM Cloud Tools/Features/Modules

XM Cloud comes with the following exclusive features:

  • Automatic updates (no more installs and complex upgrades): No more upgrades, This is a SaaS platform. So, it will automatically be up-to-date.
  • Sitecore Portal and Unified Identity
  • Sitecore Pages
  • Sitecore Dashboard
  • Sitecore Explorer
  • Sitecore Component Builder
  • Embedded Personalization and Analytics

As this is SaaS platform this list keeps growing.

XM Cloud Limitations

Following are the features/modules/roles not supported on XM Cloud. But I won’t call them as limitations as it is a bi-product of Composable DXP architecture. Where all your monolithic features are broken in to individual package business capabilities:

  • XP/xConnect/xDB functionality including existing personalization rules (a new embedded personalization experience is available for XM Cloud)
  • Marketing applications, including Experience Analytics, Experience Profile, FXM, Experience Optimization, List Manager, Campaign Creator, Path Analyzer, Marketing Automation, and the Marketing Control Panel
  • Email Experience Manager (EXM)
  • SXA with MVC, and SXA Search components
  • Sitecore Forms
  • Custom search indexes
  • Sitecore Publishing Service
  • Universal Tracker
  • Device detection
  • IP Geolocation
  • MVC
  • The Update Center
  • Content Delivery
  • Content Publishing
  • Forms database
  • Web database
  • Web index
  • Sitecore Identity Server

The list might look huge. But as I mentioned earlier, this is by design of Composable DXP Architecture. You’ve to pick either Sitecore or Another company’s product or build custom to mitigate your needs.

Compliance

Sitecore XM Cloud has achieved the majority of compliance certifications:

Path to XM Cloud

My earlier post can help you navigate your path to XM Cloud:

Hope you found this post helpful, Please keep watching this space, In the upcoming post. I will be sharing XM Cloud Development to Deployment information.

Happy XM Clouding! 🙂

Flow chart to decide between XP vs XM vs XM Managed Cloud vs XM Cloud

I understand the confusion and dilemma surrounding the different Sitecore options out there. With XP, XM, XM Managed Cloud, and XM Cloud all vying for your attention, it can be overwhelming to make a decision. Rest assured, I’m here to help you navigate through this maze and find the best fit for your needs. Let’s dive in together and explore the unique advantages offered by each option, so you can make an informed choice that aligns perfectly with your digital aspirations.

Use this flowchart as a guide, but remember that the specifics will vary depending on how you implement it. Your implementation partner can assist you in navigating through this change.

Sample Feature Utilization Matrix 

You can use this sample Feature Utilization Matrix for your project and that will help you decide whether you are leveraging XM or XP Features. Feel free to add more Sitecore or project-specific features.

PlatformFeatureWebsite 1Website N
XM​Sitecore Forms​YesNo​
Themes​YesNo​
Component Driven Design​YesYes
Multisite features​YesNo​
Multi-lingual​No​Yes​
Media Library​YesYes
Device Detection​No​No​
Sitecore Rules Engine​YesNo​
XP​Sitecore Analytics​No​No​
Sitecore Personalization​NoNo​
Sitecore AB and MV Testing​No​No​
EXM​No​No​
Marketing Automation​No​No​
Path Analyzer​No​No​
Experience Database, Experience Profile, Experience Optimization​No​No​
Campaign Creator, List Manager​No​No​
Connectors – Salesforce, MS Dynamics CRM​No​No​

Comparison between XM vs. XM Managed Cloud vs. XM Cloud


XM (Experience  Manager)XM (Experience Manager) on Managed CloudXM Cloud (Experience  Manager Cloud)
Hosting ModelSelf-hostedSitecore managedSitecore SaaS
TenancySingle-tenantSingle-tenantMulti-tenant
Primary User ScenarioCustomer requires full control over complete implementation to meet business & compliance requirements.Customer requires control over application and can forgo ownership of infrastructure for increased agility.Customer requires maximize agility and time to value by having Sitecore manage the application and infrastructure.
Time to ValueSlowerMediumFaster
Source: Sitecore doc

Hope the above diagram and artifacts help you decide the right solution for your needs!