Browse documentation

Data objects

The core data model: objects, the records inside them, their attributes, and how they relate.

Data is the foundation the rest of Spark builds on, so its model is worth getting right. It comes down to three nested ideas: objects, the records inside them, and the attributes that describe each record.

The three building blocks

  • A data object is a structured collection of data, much like a table. It defines a shape: what fields exist and what type each one is.
  • A record is a single entry in that object, like a row in the table. One record might be one counterparty, one position, or one document.
  • An attribute is a typed field on the object, like a column. Every record has a value for each attribute.

If you've used a spreadsheet, the mental model is familiar: the object is the sheet, attributes are the columns, and records are the rows. The difference is that attributes are typed, so Spark knows a date is a date and a number is a number, and can filter, sort, chart, and validate accordingly.

Attribute types

Because attributes are typed, they behave differently across the product. Text, number, and date attributes filter and sort in ways that suit their kind; a select attribute constrains values to a fixed list; and a relationship attribute links records together (below). Choosing the right type up front is what makes filters, canvases, and imports work cleanly later. The full list lives in Attribute types.

Relationships

Real operations data is connected, so records rarely stand alone. A relationship attribute links a record in one object to records in another, for example connecting a transaction to the fund it belongs to, or a position to its counterparty.

Relationships matter because they let related data travel together. Once a transaction knows its fund, you can move between them, filter one by the other, and give a canvas or the Agent a joined-up picture instead of isolated tables. Modelling investment operations well is largely about choosing which objects exist and how they relate.

Why the model matters

Almost everything else reads from this foundation. Canvases visualize records, views frame them, tasks point at the work around them, and the Agent reasons over them directly. Get the objects and relationships right and the rest of Spark has something solid to stand on.

The Data section covers how to create objects, add records, and import data.