Marketing Operations API
All definition managers and taxonomy managers are backed by a repository. Repositories are wired up in configuration, and are defined per definition or taxonomy type. In the following example, goals are configured to use an item-based repository:
<register serviceType="Sitecore.Marketing.Definitions.Goals.Data.IGoalDefinitionRepository, Sitecore.Marketing" implementationType="Sitecore.Marketing.Definitions.Goals.Data.ItemDb.GoalDefinitionItemRepository, Sitecore.Marketing.xMgmt" lifetime="Singleton" />
Repositories are configured once per server. This means that a server that combines Processing and Content Management uses an item-based repository only - even though definitions are still deployed to the Reference Data Service.
Item-based repositories use Sitecore’s content management databases. If an item-based repository is in use for goals, calling
Get() will return the goal definition from the master database. Content Management servers used item-based repositories.
In an XP/XM Single environment (such as a local development environment), item-based repositories are used by default. This means that even the processing pipeline uses the item-based version of a definition or taxonomy, not the version stored in the Reference Data Service - even though part of the activation process is to deploy the definition to the Reference Data Service.
Reference Data Service repositories
Reference Data Service repositories use the Reference Data Service. If such a repository is in use for goals, calling
Get() will return the goal definition from the Reference Data Service - not the master database.
Do not change definitions and taxonomies directly in the Reference Data Service on a server that uses repositories backed by the Reference Data Service. This is difficult to do, given that processing only exposes read-only definition and taxonomy managers, but it is technically possible.