Datastores

What's a Datastore?

Datastore forms allow Platform administrators to define and build up referential data that can be leveraged in other platform areas. Some examples of referential data include lists of assets, sites, vendors, and city and state names. Information stored in a Datastore form can be configured to support many types of query combinations so that large datasets can be searched efficiently.

When Do You Use a Datastore?

Understanding how users need to query for data is an important part of keeping your system healthy and fast. Traditionally, application owners relied on a database administrator to design a database schema properly indexed for speedy searches. In the Kinetic Platform, users can define fields that are similar to columns in a database. Datastore forms allow system admins to define combinations of fields for users to query. The application then builds index records behind the scenes to ensure that the query will execute quickly on large datasets.

Forms vs. Datastore Forms

There are a few differences between Kapp forms and Datastore forms. The primary difference is the method used to query the form for submissions.

FormsDatastore Forms
Optimized forTransactional data: Forms are used to capture data with a defined beginning and end date (life cycle). Common use cases include orders, requests, incidents, cases, or work orders.Referential data: Datastore forms typically store data that doesn't have a defined life cycle and has a well-defined querying pattern. Assets, sites, vendors, cities, and states are common use cases.
Scoped toKapp: Forms exist within Kapps., which are collections of forms typically used to create an app. Examples of Kapps include service catalogs and case management systems.Space Datastore forms exist at the Space level of the Kinetic Platform. These forms typically store data that needs to be shared between all Kapps. An example would be a list of sites used by the Service Catalog and Case Management Kapps to build up Site Lists.
Cross-Form SearchabilityYes: Submissions within a Kapp can be searched regardless of form by using a predefined set of Kapp fields. An example of a query like this would be Submissions in a Kapp where the assigned team is HR. This query doesn't include a specific form and is valid because "Assigned Team" is a Kapp field.No: Datastore submissions have no shared (pre-defined) fields. You can only search for submissions in a single Datastore at a time.
Ensures uniquenessNo: Forms don't allow form administrators to define unique submission restrictions.Yes: Datastore forms allow administrators to set unique submission restrictions. An example would be a datastore representing states. You would want to ensure that the State Name field is unique so that two submissions don't have the same State Name.
Search and sort strategyAd-hoc, size-dependent: Form submissions can be searched using an AND/OR ad-hoc pattern. The sort order is limited to a timeline (createdAt, submittedAt, UpdatedAt, closedAt). This searching style is considered non-deterministic when using ANDs in the query because an error is thrown if none of the individual comparisons match less than 1000 results for the specified timeframe.Admin-defined patterns: Datastore submissions are queried using predefined patterns configured by the form's administrator. Large result sets can be returned paginated and sorted in the order defined by the index. This style of searching is considered to be deterministic.