Functional design

trac ecosystem

Metadata model

Unlike traditional model platforms, trac is built around a structural metadata model which catalogues and describes everything on the platform. The model consists of two layers:

OBJECTS

The model’s structural elements. Each object type (e.g. models or data) has its own metadata structure

TAGS

Used to index, describe and control objects. Some tags are controlled by the platform, some are user-defined

Note

By recording object creation and tag modification actions in a time-consistent manner, trac builds a comprehensive audit history of the entire platform and its contents.

Objects

All processes on trac are constructed using a combination of six object types.

SCHEMA

Defines the names, types, constraints, and relationships of fields in a Data object. Schema objects can be re-used across Data objects. Two sub-types are supported: Table and Structured (or ‘Struct’).

DATA

Collections of data records that are available for use on the platform. Data objects contain their schemas, stored either as part of the Data object definition or by mapping to a Schema object.

MODEL

Discrete units of code stored in a repository that have been made available for use on the platform. A Model metadata object refers to and describes a versioned unit of code stored in the repository.

FLOW

The blueprint of a complex calculation involving multiple models which trac can run on demand, represented as a graph. Flows exist only as metadata and do not refer to any external resource or asset.

JOB

A calculation or process that trac has or will orchestrate — for example, to execute calculation using a Model or Flow and some data inputs.

FILE

A discrete unit of digital information that is available on trac. Files can be used as job inputs, but trac cannot describe or assure the contents of a File.

Note

‘Model schema’ refers to the set of schemas which describe a model’s inputs, outputs and parameters. This is not a separate object type, it’s part of the model object.

This diagram shows the interactions between different object types. See Virtual Deployment for more details.

select file

Jobs

Users with appropriate permissions can configure and run five different job types.

select file

ImportData

Copies data from an External Storage location into trac via a batch import process

ExportData

Publishes data from trac to an External Storage location via a batch import process

ImportModel

Imports a new model or model version from a Repository

RunModel

Runs a model against a set of data and parameter inputs, in a Runtime Environment

RunFlow

Runs a flow against a set of data, model and parameter inputs, in a Runtime Environment

Note

Data, File and Schema objects can be loaded via the UI, which directly creates the object in the metadata store without a corresponding Job. This is also true for building and saving a Flow.

Virtual deployment

In trac, models are not deployed in the traditional sense - the code stays in the repository and is fetched dynamically at runtime.

IMPORT MODEL

The model code is scanned by not copied. A new metadata object is created which contains the model schema and a link to the code commit in the repository

BUILD FLOW

Models are combined into execution processes where the outputs of one model become the inputs to the next. Flows exist only as trac metadata and are built from the model schemas, not the model code

RUN FLOW

To launch a Job you select the data inputs for that run based on schema validation. The model code is then fetched from the repository at runtime.

Note

This short video (under 3 mins) explains the virtual deployment method.