Core concepts
- Include keys — Human-readable aliases that expose relationships in APIs and partitions (for example
worksAt,staff). They appear inincludes, traversed properties, and search filters. - Cardinality — Expresses how many instances can exist from each side (
0:1,0:*,1:1, etc.). Cardinality guides data quality rules during ingestion. - Relationship properties — Optional attributes stored alongside the link, such as effective periods or metadata about the connection.
Relationship definitions are scoped to a data source. When the same profiles exist in multiple sources, declare the relationship separately in each to keep provenance clean.
Structure of a relationship definition
key— Stable identifier referenced by ingestion APIs and downstream partitions.from/to— Anchor each side to a profile, set the include key name, and declare cardinality.properties— Optional structure that uses the same data types available to profiles.
Designing effective relationships
- Name includes for consumers — Choose verbs or nouns that make sense in queries (
worksAt,offeredServices) so search configurations are intuitive. - Validate business rules — Cardinalities should mirror real-world constraints. Use ingestion tests to verify they reject invalid scenarios early.
- Prepare for partitions — Clearly defined include keys make it straightforward to configure traversed properties and expose adjacent attributes in search.