Page tree

Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.


Projector is responsible for computing the changes. It is triggered by user changes in GUI, received by service or detected by synchronization. Projector recomputes all the synchronization policies, applies all mappings and expressions, processes RBAC role assignments and so on. However, projector is just computing the values. It is not yet executing them. The result of projector computations are stored in model context.

Projector distinguished objects into two categories: Focus and Projections

  • Focus which is typically user. Focus is the object which is central to the recomputation. The object that links to all the projections.
  • Projection which is typically an account (represented by shadow).


Clockwork is a controller. Clockwork invokes projector to recompute everything that needs to be recomputed. Clockwork invokes hooks to further process the request (e.g. to route it through a workflow). This happens several times. Clockwork then proceeds to execute the changes. This may also happen several times if dependencies are used. Clockwork handles execution errors. And at the end of execution it once again invokes hooks (e.g. to handle notifications).