The repository engine is a service that provides basic functions for storing and retrieving objects and maintaining the relationships among them.
The engine performs these functions within the context of an information model. In this way, it is a model-driven interpreter. The engine processes user-defined model information to determine how to store and support objects, relationships, and actions. When you use the repository engine to manipulate instances of information models, the engine does so only to the extent that model structure allows. For example, the engine will establish an object relationship only if the underlying model supports it.
To use the repository engine, you program against the repository API. The repository engine responds to directives issued by application code through Component Object Model (COM) and COM Automation interfaces.
The repository engine handles all interaction with the storage layer for you. Although you control when and how transactions occur, the engine generates the SQL commands that execute specific actions.
The following diagram illustrates engine architecture. The engine executes as a class library. It buffers instance data from repository databases in a cache. Objects that you manipulate in code point to the cached data. Row caching maintains state information about the objects, properties, and relationships that are instantiated.