A repository is silo where nodes can be stored. Data stored in a repository will typically belong to a common domain. Fetches and searches are by default executed against a single repository, so it makes sense to keep data from different domains separated in different repositories.
When nodes are stored in the repository, two things happens:
- The node properties are stored in a Blobstore as a node-version. A node-version is an entity representing the properties of the node, without name, parent and other meta-data.
- The node is inserted into a Branches. The branch keeps track of a tree-structure referring to node-versions.
Out of the box, Enonic XP ships with two built-in repositories:
system-repo: The core repository. Here, users and groups, references to other repositories, installed application etc are stored.
cms-repo: Content domain data, this is the data managed in the Content Studio app.