My new blog present here.

Featured Post

Insights into Sitecore Search: A Definitive Introduction

A key component of digital experience management is effective information retrieval. A simplified approach is required for websites, applications, and platforms containing a lot of material so that consumers can easily get the data they require. This need is met by Sitecore, a well-known name in the field of digital experience platforms (DXPs), which provides powerful and comprehensive search functionality. We will travel into the realm of Sitecore Search in this article, learning about its capabilities, architecture , and the enormous value it offers both developers and end users. Introduction to Sitecore Search    A headless content discovery platform powered by AI , Sitecore Search enables you to build predictive and custom search experiences across various content sources. To extract and index you

Quickstart guide - All about Sitecore Experience Edge

Nowadays, many monolithic applications which developed earlier as a packaged solution to provide all the digital experience as single product being converted into a composable product suite in the digital transformation journey.

It means the individual component operates independently in a modular way, and communicate with other component of whole echo system via APIs.

With this idea in mind during digital transformation, organizations are moving away from the typical .NET based implementation to Headless implementation so that at any given point of time there should be no dependency on any component.

To support the composable journey of your organization in the recent past, Sitecore invested more in outstanding products to become a market leader in the composable digital experience platform (DXP) space. With these products, we can have inbound/outbound integrations with Sitecore in terms of Content Management, Personalization, Analytics, Campaign, or we can say that in the Digital Marketing space:



You can integrate components from above which are required by your DXP architecture.

In order to meet current market need, organizations moving towards the true headless CMS offering to build modern applications to support omnichannel experiences. 

Once you have decided to move implementation of your web application in the headless way instead of ASP.NET MVC then after that most important architectural point is how you are going to develop decoupled applications by utilizing Sitecore services, APIs, and software development kits (SDKs) and access Sitecore data as a headless content management system (CMS).

Headless development in Sitecore is powered by a layer of services, API endpoints, and rendering SDKs:

Services and API endpoints

Rendering SDKs

In this article, we will explore about Sitecore scalable API layer called Sitecore Experience Edge which provides Sitecore content and to understand the details Sitecore Experience Edge for XM product would be used:


What is Sitecore Experience Edge?

The Sitecore Experience Edge is a globally scalable SaaS API service offering from Sitecore, which provides the contents of Sitecore products and content can be items, layout, data model, and media. 

While using Sitecore Experience Edge, the content would not be published to the Content Delivery environment, instead of that it would be published to Sitecore hosted (SaaS) Content Delivery Network (CDN) called Sitecore Experience Edge in the cloud.

Sitecore Experience Edge is a set of services on Sitecore's SaaS platform which helps organisations to deliver headless content at scale with significantly faster time-to-market.

The Sitecore Experience Edge is a highly scalable Content as a Service (CaaS) delivery platform that enables you to build Jamstack architectures on the Sitecore platform.  

Please find below High-level view of Sitecore Experience Edge which explain components/process involves to publish content to Sitecore Managed Content as a Service (CaaS)  

If you are using Sitecore XM then Sitecore Experience Edge will replace Content Delivery layer.
Sitecore Experience Edge is not Layout Service but it's a CDN cache and snapshot of Layout Service response which published to Experience Edge and accessible via GraphQL API.
The Experience Edge advantages and Sitecore products  

Benefits of Sitecore Experience Edge

The Sitecore Experience Edge is a set of services on Sitecore's SaaS platform and it's a win-win for both marketers and developers:

  • It's provides faster content delivery and data caching
  • Flexibility to select a tech stack
  • Decrease architectural complexity
  • Extremely scalable delivery and globally replicated platform which provides content delivery using high-performing Sitecore-hosted GraphQL APIs
  • Support to create static Sitecore JSS sites
  • Sitecore Experience Edge is a centralized distribution layer to manage the content
  • With Sitecore Experience Edge, you don't require the Sitecore Web Database and Sitecore Content Delivery Server
  • Consume by any channel and application platform
  • Support of Jamstack architectures to build a static website creation and deployed to Vercel then we can utilize Vercel's all-in-one platform with global content delivery networks (CDNs) which support the deployment and delivery of static and Jamstack apps

Sitecore Experience Edge availability

The Sitecore Experience Edge is a scalable content delivery service in the cloud available for following Sitecore Products


Type of Sitecore Experience Edge API

This global Content Delivery environment (Experience Edge) provides you a Sitecore-hosted GraphQL (GQL) API. With these Edge GraphQL (GQL) endpoint you can build your solution in any language and pull the required content with the help of GraphQL (GQL). 

The major GraphQL APIs of Sitecore Experience Edge are:

  • Preview API
  • Delivery API
The Preview and Delivery APIs are GraphQL endpoints, and these APIs are globally replicated and scalable, and provide fastest content/media delivery near to the user's location.

GraphQL is a query language for these APIs that gives you a flexible way to query the data. It also provides the flexibility to define API endpoints with custom url's. These endpoints host the schema, which is a strongly typed graph definition where endpoints understand the GraphQL language.

What is Sitecore Experience Edge Preview API?

For example, if we are using the Sitecore JSS Rendering SDK with Sitecore Experience Manager (CMS-only mode) for Headless development then Sitecore Headless Services provide a GraphQL (GQL) API end points that mirrors the schema and behavior of Experience Edge, based on the Sitecore GraphQL API.

This Sitecore Experience Edge for XM Preview GraphQL API endpoint enables, preview, editing, and local development without publishing to Experience Edge (SaaS instance) and you can utilize your self-hosted Sitecore XM instance.

This GQL API endpoint mirrors the GQL Schema of Sitecore Experience Manager (XM) GQL Production schema (this shema will work on both Sitecore CM and Sitecore CD- here Content Delivery is Sitecore Experience Edge) so that development team can do the development without relying on the Sitecore Experience Edge SaaS instance.
To get more information about Sitecore Experience Edge Preview API for different Sitecore Products, you can check below URL's


What is Sitecore Experience Edge Delivery API?

The Sitecore Experience Edge Delivery API is a GraphQL API that used to deliver approved and published content and media to any app on any channel.

This API is optimized for performance and high availability, and support scaling and serve content faster. We will use this API for all production-related actions and provides a unified and strongly typed interface to access the published items.

To get more information about Sitecore Experience Edge Delivery API for different Sitecore Products, you can check below URL's


Data caching at Sitecore Experience Edge

The Sitecore Experience Edge is Sitecore managed, optimized and scalable CaaS (CDN) offering, which caches content items/layout snapshot/media items located close to the users to serve content faster.

The Sitecore Experience Edge only acts as a CDN for content items/layout snapshot/media items that are within Content Management Role, and it will not do anything for Static HTML.

Every publishing of content from source (Content Management) invalidate the cached content at Sitecore Experience Edge CDN.

The media items (images/videos) stored in the Content Management (CM) Role and referenced in content items, would also be published to Experience Edge, and cached to Sitecore CDN. The media link url would be from Sitecore CDN not from Content Management (CM) Role.

For example, if we are using the Sitecore JSS Rendering SDK with Sitecore Experience Manager (CMS-only mode) for Headless development and using NextJS Client-side framework to build the Front-end and deployed to Vercel then we can utilize Vercel's all-in-one platform with global content delivery networks (CDNs) which support the deployment and delivery of static and Jamstack apps.
In the above diagram, NextJS app deployment to Vercel is not part of Sitecore XM Cloud.


How to test Sitecore Experience Edge GraphQL (GQL) queries?

You can use interactive browser-based GraphQL Integrated Development Environment (IDE) which based on the GraphQL Playground to validate your queries during the development phase with production schema, and without pushing to PROD environment.

With GraphQL IDE, we can use Preview API and the Delivery API.

To get more information about Sitecore Experience Edge GraphQL IDE for different Sitecore Products, you can check below URL's

Personalization support for Sitecore Experience Edge

The Sitecore Experience Edge has snaphshot of Layout Service output, so Experience Edge can not execute or support Sitecore personalization rules or content testing capabilities of Sitecore XM or Sitecore XP.

We can use Sitecore CDP and Sitecore Personalize on static websites for tracking and personalization purpose instead of Sitecore XP Personalization offerings.

If you are using Experience Edge for XM Cloud then on Content Management (CM) Role:

  • You will get Sitecore embedded Personalization (tenant of Sitecore CDP and its thin layer of Sitecore Personalize)
  • You will get limited support of personalization on Sitecore XM Cloud CM role and you don't get access to the full Sitecore Personalize tenant and would be using per-build templates to segregate/segment the end user's for content variation
  • You will get the advantage of User Interface (UI) for your pages to add personalization to your website (to reflect on your Head application) which not present in other Sitecore SaaS offerings
  • Full Sitecore Personalize license required
We can implement personalization using Edge middleware from the client-side framework, e.g., Sitecore JavaScript Rendering SDK (JSS) for Next.js and with the release of Next.js 12.2, Vercel Edge Middleware for Next.js available for all customers:
  • These Edge middleware works as Edge Functions
  • These Edge functions would be called before getting the data from edge cache and execute before a request is processed on a website
  • With middleware we can effectively implement personaliztion on statically generated content by execution of custom logic/rewrite/redirect/security check in server side logic at the edge
Please find below flow to implement, how you can use Edge Middleware to provide speed and personalization to your users:

Custom Code support for Sitecore Experience Edge for XM

For example, if we are using the Sitecore JSS Rendering SDK with Sitecore Experience Manager (CMS-only mode) for Headless development and using NextJS Client-side framework to build the Front-end and to get a custom response from component/rendering if you are using Custom Rendering Contents Resolver then it will work on Sitecore Experience Edge for XM.

During publishing to XM Edge, the layout of the pages is computed on the CM and Custom Rendering Contents Resolver also, then resulting layout service JSON would be send/published to XM Edge CDN for delivery.

If any changes at source, then you have to republish the pages.


Security of Sitecore Experience Edge

The Sitecore Experience Edge provides many ways to secure the content and some options are:

Sitecore Experience Manager
  • You can utilize JSON Web Token (JWT) for authorization purpose to execute any operation in any of Experience Edges protected APIs other than the Delivery API
  • You can use API Key to authenticate Experience Edge several APIs, and for this first use OAuth to obtain a JWT before you create an API key, and after that pass the API key to perform the operation on GQL APIs
  • You can secure call of Experience Edge by using server side code execution on Client-side framework e.g. Next.Js getServerSideProps
Sitecore XM Cloud
  • You can utilize JSON Web Token (JWT) for authorization purpose to execute any operation in any of Experience Edges protected APIs other than the Delivery API
  • You can use API Key to authenticate Experience Edge several APIs, and for this first use OAuth to obtain a JWT before you create an API key, and after that pass the API key to perform the operation on GQL APIs
  • You can secure call of Experience Edge by using server side code execution on Client-side framework e.g. Next.Js getServerSideProps
Sitecore Content Hub
Sitecore Content Hub One

Limitations of Sitecore Experience Edge

The Sitecore Experience Edge has following high-level limitations and restrictions, and for details you can check Limitations and restrictions of Experience Edge of Sitecore XM / Sitecore XM Cloud:

  • The Sitecore Experience Edge not support personalization capabilities of Sitecore XM and Sitecore XP
  • The Experience Edge schema can't be extended
  • You can't customize (custom indexes) the index schema in Experience Edge because Solr indexes are not accessible via Edge or XM Cloud, and they are only used by the Content Management Admin UI
  • You wouldn't be getting Sitecore Web Database
  • The Experience Edge GraphQL (GQL) search queries are quite limited and support basic search, but for the advance search support you have to rely on third party search providers like Coveo, SearchStax or utilize Sitecore Search

Credit/References:

Edge Middleware Edge Functions Examples Sitecore Experience Edge for XM Preview GraphQL endpoint 
The architecture of Sitecore Experience Edge for XM We’re thrilled to announce groundbreaking Sitecore Experience Edge Limitations and restrictions of Experience Edge for XM
XM Cloud Introduction How to optimize your omnichannel content strategy Sitecore Slack Conversations
Sitecore Content Hub Edge GraphQL IDE Sitecore Authoring and Management GraphQL API Sitecore Experience Edge for XM Preview GraphQL endpoint 
Sitecore Experience Manager Deliver headless content at scale with Sitecore Experience Edge How to optimize your omnichannel content strategy
Sitecore Content Hub One Sitecore Headless Services and APIs Sitecore GraphQL (GQL)
Sitecore Experience Edge for XM Experience Edge for XM APIs Overview of headless development with Sitecore 
Experience Edge for Content Hub Sitecore Experience Edge for Content Hub Limitations and restrictions of Experience Edge for XM Cloud
Sitecore Experience Edge for XM Cloud Preview GraphQL endpoint The Experience Edge schema for Sitecore XM Sitecore Experience Edge for XM Cloud
Test queries of Sitecore Experience Edge for XM Cloud Experience Edge for XM APIs Sitecore Content Hub ONE Documentation
Experience Edge for XM sitecore experience edge connector sitecore experience edge architecture

Pingback:

Sitecore Slack Conversations sitecore experience edge connector sitecore experience edge architecture 
sitecore experience edge subscription sitecore experience edge for xp sitecore experience edge preview
sitecore job description sitecore examples  sitecore developer salary
sitecore edge experience edge for xm sitecore experience commerce
sitecore experience accelerator download experience edge sitecore experience edge 
experience editor sitecore edge-core sitecore experience explorer
sitecore experience editor not editable sitecore experience manager sitecore experience profile
sitecore xp features what is sitecore experience edge sitecore view rendering example 
sitecore support jobs experience editor sitecore not working sitecore experience editor
experience profile sitecore sitecore experience platform sitecore experience accelerator
sitecore horizon vs experience editor sitecore experience edge xm xp vs xm sitecore
edge-core switch experience accelerator sitecore sitecore 8 end of life
sitecore 9 end of life itecore experience edge customization sitecore experience edge api  
Building custom Sitecore images Copying Files To And From Docker Containers - Baeldung Understanding Docker Volumes
sitecore xconnect data sitecore xconnect api Sitecore Docker images repository
sitecore disable xconnect Sitecore xconnect core xConnet api
sitecore xconnect data access sitecore xconnect data api sitecore xconnect data analysis
sitecore kafka Sitecore Content Migration Using Sitecore Express Migration Tool Sitecore xDB Migration Using Sitecore xDB Data Migration Tool
How to use Sitecore SwitchOnRebuildSolrSearchIndex on Solr slave Indexes which are replicated from Master Index
Start using Sitecore GraphQL API Sitecore Helix Recommendation and Conventions - Helix 2.0 What’s new in Sitecore 10
Analysis for Sitecore Experience Accelerator (SXA) based website implementation Secure Sitecore JSS Site Sitecore Experience Accelerator (SXA)
Sitecore Graphql tutorial Sitecore Performance Tuning Sitecore GraphQl Examples
What is SXA Page Design? sitecore xconnect data analytics Speed Up Sitecore Upgrade with PackageReference
sitecore xconnect data analyst Sitecore Version 10 - Sitecore Upgrade Process sitecore xconnect data architecture
sitecore xconnect data azure sitecore xconnect data already exists contact sitecore.xconnect.xdbsearchunavailableexception
sitecore xconnect data backup sitecore analytics disable sitecore analytics
enable sitecore analytics tracker sitecore analytics testing tools sitecore analytics vs google analytics
sitecore analytics database manager how to enable sitecore analytics sitecore analytics reports
sitecore analytics not working sitecore analytics cookie sitecore analytics custom reports
sitecore analytics api sitecore analytics ip address sitecore.analytics.tracker.current.session.identify as
sitecore and google analytics adobe analytics integration with sitecore sitecore analytics benefits
best sitecore websites sitecore analytics power bi sitecore analytics chrome extension
sitecore analytics.clustername sitecore analytics.cookiedomain sitecore analytics configuration
sitecore custom analytics sitecore commerce analytics sitecore.analytics.tracker.current is null
Start using Sitecore GraphQL API Sitecore Helix Recommendation and Conventions - Helix 2.0 What’s new in Sitecore 10
Analysis for Sitecore Experience Accelerator (SXA) based website implementation Secure Sitecore JSS Site Sitecore Experience Accelerator (SXA)
Sitecore Graphql tutorial Sitecore Performance Tuning Sitecore GraphQl Examples
What is SXA Page Design? Sitecore Installation and Upgrade Guides Sitecore Upgrade Services

Comments

Popular posts from this blog

Sitecore GraphQL Queries

Configuring Sitecore Next.js Headless SXA Multisite App in a Sitecore Container

Sitecore Experience Manager Cloud (XM Cloud) Building blocks