Skip to content
Christopher Davis edited this page Jan 28, 2019 · 4 revisions

Datastore is a faceted navigation engine. It allows a single object with a set of properties to be indexed and searched. Certain object properties can be grouped according to type. There are numerous ways to group data. If a property has a finite set of values like U.S. states, then that field will be defined as a dimension. A dimension has a finite set of values called refinements. Each of the unique values, like U.S. states, will be defined as a refinement and assigned a unique integer. The integer is used for searching and URL queries. This allows URL string to be shorter and prevent XSS attacks.

A repository is a store of data with a schema defined as a single object type. The object is defined as a POCO in code with data store specific attributes added to the object properties that allow the system to create a backing store of the proper schema.

A defined repository object has a set of fields each with a data type and other other meta properties such as nullable, etc. An object has a single, required primary key that is used to uniquely define the object. The primary key field is used to add, replace, or delete an object in the repository.