AggreGate classes

Classes are designed to store a large number of cross-linked objects in a persistent storage facility. Each class may have millions of instances backed by a relational or graph database:

  • Class instance topology maps to a set of relational database tables or a set of nodes and edges in a graph database
  • Every class instance is a record in a relational database table or a node in a graph database
  • Classes have fields mapped to a relational database table columns or graph database node properties

Classes may have one-to-one, one-to-many and many-to-many relations between each other. Those relations help to establish smart navigation between class instances. In a relational back-end, one-to-one and one-to-many relations are supported by foreign keys while many-to-many relations are represented by dedicated lookup tables. In a graph database, all class instance relations are graph edges.

Classes relations

Dashboards are fully aware of classes, allowing rendering and modify fields of individual instances. Class views display tabular instance lists with on-the-fly sorting, searching and filtering.

Class instances have configurable states and lifecycles, flexible per-instance permissions and bindings that perform a periodic re-evaluation of field values.

CRM system architecture based on classes

Here are some use cases for classes:

  • In a CRM system, typical classes are Contact, Account, Lead and Opportunity
  • In an asset inventory system, these could be Asset, Asset Type, Person and Location
  • A Service Desk system may feature classes like Agent, Incident, Service and Service Level Agreement (SLA)
  • A Data Center Information Management system typically deals with Racks, Servers, Cables and similar industry-specific classes