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:
- Configure environment variable Sitecore_ExperienceEdge_dot_WorkerStoreEnabled to TRUE
- Deploy the environment
- 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! 🙂