Source fundamentals
Each source is both a contract and a container:- Contract — Sources reference the profiles and relationship definitions that data must respect. They define which data types, validation rules, and vocabularies are allowed.
- Container — Sources persist the raw resources and relationships exactly as they were ingested, including source-specific metadata needed for traceability.
- Processing boundary — Pipelines, processors, and validation rules execute per source so that each system can keep autonomous data quality guardrails.
Resources
A resource is a record stored under a source that conforms to the profile defined by its collection. Resources include:- Data — Properties defined by the associated profile, including nested object and array structures.
- Meta — System-managed attributes such as identifiers, timestamps, and ingestion receipts.
- Contained resources — Optional embedded structures declared by the profile. They are versioned together with the parent resource and never queried independently.
Relationships
Relationships capture graph structure between resources:- Definition — A relationship definition declares allowed
from/toresource types and the properties carried on each edge. - Instances — Each stored relationship references two resource identifiers, its key (the relationship type), optional data payload, and metadata.
- Traversal — Partitions can traverse relationships so that related properties become available for querying without denormalizing data.
Ingesting data into a source
Decide how much coordination each integration requires, then pick the ingestion workflow that matches:- For batched workloads, use the bulk resource and relationship APIs so that operations run asynchronously and can retry individual failures.
- When you need atomic guarantees across multiple operations, rely on bundle requests.
- For low-volume or highly targeted writes, the single resource APIs and relationship APIs provide synchronous confirmations.
Profiles & Relationships Definitions
Understand how to define your data models
Data Ingestion
Learn how to ingest resources or relationships in bulk
Bundle Ingestion
Learn how to group multiple writes in a single transaction