Technology
Sitecore

Sitecore 9.3 Scalability

May 05, 2020

The initial release of Sitecore 9.3 has brought a number of improvements to its architecture. With Sitecore 9.3, there are numerous components and databases — and it’s really helpful to see the communication flows / scalability of the components. Before viewing the diagram, it is good to understand the different Sitecore roles, xConnect application roles, and databases that are involved:

Sitecore roles:

  • Content Delivery
  • Content Management (with EXM Dispatch)
  • Processing
  • Reporting roles

xConnect application roles:

  • Collection API
  • Collection Search API
  • Marketing Operations API
  • Marketing Reporting API
  • Reference Data API
  • Search Indexer Job
  • Marketing Engine Job
  • Sitecore Cortex Processing Engine
  • Sitecore Cortex Blob Storage service
  • Sitecore Cortex Table Storage serviceSitecore Cortex Reporting service
  • Universal Tracker Collection service
  • Universal Tracker Processing server

Additional Components:

  • Sitecore Identity Server (SIS).

Databases:

  • Core
  • Master
  • Web
  • Experience Forms
  • Reporting
  • Processing.Pools
  • Processing.Tasks
  • ProcessingEngineStorage
  • ProcessingEngineTasks
  • Universal Tracking database
  • ReferenceData
  • Messaging
  • Marketing Automation
  • ShardMapManager
  • Shard0
  • Shard1

Additionally:

  • Please note that the diagram shows which components can be scaled horizontally. It does not include the database scalability options — as I assumed it to be a “highly available” database whether it exists on a single server or multiple database servers.
  • The Solr component can be replaced with Azure Search component as needed.
  • We cannot set up multiple instances of SIS behind load balancer due to encrypted cookie that can only be decrypted by the instance of SIS that encrypted/issued that cookie.
  • We can set up Content Publishing component on separate server to support publishing, which is not shown in this piece.

As you can see in the diagram, you can have the following:

  • Multiple Content Delivery servers
  • Multiple Content Management servers
  • Multiple Processing servers
  • Multiple Reporting servers
  • Multiple Solr servers
  • Multiple xConnect Search API servers
  • Multiple xConnect Collection API servers
  • Multiple xConnect Reference Data service API servers
  • Multiple xConnect Marketing Automation Reporting API servers
  • Multiple xConnect Marketing Automation Operations API servers
  • Multiple xConnect Marketing Engine Jobs
  • Multiple xConnect Universal Tracker Processing service servers
  • Multiple xConnect Universal Tracker Collection service servers
  • Multiple xConnect Sitecore Cortex Reporting service
  • Multiple xConnect Sitecore Cortex Table Storage service
  • Multiple xConnect Sitecore Cortex Blob Storage service
  • Multiple xConnect Sitecore Cortex Processing Engine

You can scale each of these components individually to suit your application needs. This provides a highly scalable Sitecore 9.3 architecture. I hope you find it helpful, and feel free to comment and let me know if there is anything misrepresented in here.