The Search Controller is an important component of the synchronization mechanism. It maintains a list of all the entities associated with each Search Service.
When an entity changes, the Search Controller can be checked to see if that entity is used by one or more Search Services. If it is used, the data in the staging database should be updated in the same transaction as the entity update. The Search Controller also provides an API for updating the staging database.