We have all been very excited about a major transition from Sitecore 8x architecture to Sitecore 9 - xConnect, Dynamic Placeholders, back to the roots movement from Mongo to SQL and various other features. I was particularly interested to dissect and understand the new architecture of Sitecore 9. Sitecore community is abuzz with conversations around microservices, numerous logical system roles or entities. And there’s about 50 of them! And they can be scaled and configured in a wide variety of topologies to form a tailored Sitecore solution for specific business requirements. What about which topology/product uses which combination of roles? Do they overlap?
Now I gotta sit down, take notes and highlight some things. I am hoping this condensed summary will help someone navigate the complex yet elegant architecture of Sitecore 9.
Let’s set aside the roles and return to the basics for a moment– entire Sitecore product and the parts it consists of. There are three products that form the Sitecore suite. They are:
- Sitecore Experience Manager (XM) – everything content related: creation, management, personalization and publishing. This is the central/core CMS part.
- Sitecore Experience Platform (XP) – this is a combo, a bundle which combines Experience Manager with marketing and customer intelligence features that come with xConnect and the xDB
- Sitecore Experience Commerce (XC) – all the features and functionality related to commerce
Apart from distinct product types what about scaling? As a potential buyer what do I go for depending on the size of my business and how my development process is set up?
Sitecore comes with two pre-built topologies (either XM or XP):
- Single is a good option for local dev and testing environments. Or small implementations where everything can be installed on a single machine.
- Scaled is best for large implementations and it can be scaled both vertically and horizontally, depending on your business needs.
Let’s look at all the roles by type.
- Storage roles – either a database or a data store for temporary storage
- Application roles – performs some business logic. These are subdivided into Web Roles (websites or web services with API endpoints; deliver output) and Worker Roles (data transporters; they await changes to data and transform/transfer the data to other roles)
- Indexes – quick retrieval of data
- Cloud services – hosted services
Now that we have the four types I would like to list all roles applicable to XM (Experience Manager), our CMS by type:
- Storage: master, web, core, forms DB’s. Plus Private Session State and Shared Sessions State stores.
- Application: Content Delivery, Content Management, Content Publishing, Data Exchange Framework Remote Client.
- Indexes: master, web, and core.
- Cloud services: GeoIP lookup and Device Detection.
Let’s move onto Experience Platform or XP roles. This is the biggest list of all three.
- Storage: DB’s: xDB Collection, xDB Reference, xDB Processing Tasks, xDB Processing Pools, xDB Reporting. Then there’s Marketing Automation, FXM and Message Bus
- Application: xConnect Collection, xConnect Collection Search, xConnect Search Indexer. xDB Processing, xDB Reporting, Reference Data, Marketing Automation Operations, Marketing Automation Reporting, Marketing Automation Engine. FXM Dedicated Dispatch
- Indexes: xDB, Testing, Suggested Test, Web Marketing Definitions, Web Marketing Assets, FXM Web, Master Marketing Definitions, Master Marketing Assets, FXM Master
- Cloud services: Email Dispatch
Last but not least Experience Commerce (XC) roles.
- Storage: Shared Environments, Global
- Application: Shops, Authoring, BizFX, Identity Server, Minions, DevOps
- Indexes: Catalog Items Scope, Orders Items Scope and Customers Scope.
- No cloud services.
For detailed information please refer to the wealth of information available in Sitecore’s Platform Administration and Architecture documentation at https://doc.sitecore.com/developers/90/platform-administration-and-architecture/en/index-en.html