Model Types

Learn about model types, and how to choose the best for the job.

Universal

This is a general purpose type, suitable for a wide range of entities and concepts. It supports unique values, and may be a singleton.

The Universal type may optionally be a container for other types. For example, a List might be defined as a container for Task's.

While this type has broad cases, review the other model types before choosing in case another type is more suitable. It should not be used for extremely unbounded data, such as Orders or Comments (better suited for the Event type). It does not allow large text fields, and is therefore not suitable for an article, blog post, or product description.

Content

Represents content that is hand crafted by a small number of people, and typically viewed by a much wider audience. Intended for content management systems, and it may represent anything from an Article to a Product. It supports larger field sizes.

Content is on our roadmap for Q1 2019.

Event

This type is for events, time-series data, activity, or logging. Events accumulate over time at a potentially high frequency/volume.

Orders, comments, and Twitter posts are considered "events", from the standpoint of their potentially high frequency, their small size, and their permanence/low-mutability. Once created they are usually not modified again.

Events are on our 2019 roadmap.

User Profile

User profiles are only relevant and available when user related functionality is enabled. They may either be a top level type or contained.

Learn more about user scripting.

Embedded

Embedded models create a complex value (or sub-document) that can be used as a field type for another model type. It may also be used for lists, where for example "Order.items" is a list of "OrderItem" embedded values. Models to be embedded take on the field limitations of whatever type they are embedded on.

Local vs. Global

Global Embedded types may be used and embedded within any other type, as long as their fields are compatible with that type. They have a distinct name and configuration file.

Local Embedded types may only be used and embedded within a single model type, and they are defined directly in the same model configuration file that uses them.