Skip to content
Platform / Data

Bring source data into your business model.

Connect declared sources, give their records business meaning, and make the data behind each operation inspectable.

Explore DataInspect source

Which facts does the operation depend on?

Placement
Captured relation or external virtual table
Schema
Typed source records
Observation
Published version or external read interval
Access
Governed reads through declared operations

Every fact has a source.

Compare a published captured version with an external read. Their freshness and history mean different things.

Source observationGuided example · sample data

supplier-agreement.pdf

Customer: Meridian Components
Amount: $2,500.00
Status: approved

Read the version behind the decision.

Dataset
drive_document
Transaction
capture-012
Observed at
09:42 UTC
Document revision
3
Historical reads
Available for retained captures

Sample observation metadata. Source placement is declared in the product; a caller cannot switch a production source by toggling this control.

How Data works.

Explore document intake

Declare sources and their schema.

Define the records a source exposes, the connection it uses, and how those records map to your objects. Credentials and transport remain with the host.

Choose how data is observed.

Captured sources publish immutable dataset transactions. Depending on the connector, capture can use snapshots, append-only cursors, PostgreSQL CDC, or authenticated streams.

Inspect freshness and history.

A published capture identifies the data version behind a read. An external read records its own observation interval and consistency. Show those facts beside the result.

Connect evidence to decisions.

Functions declare source dependencies. Actions can bind prepared evidence and a maximum observation age, then check its applicability again before committing.

Follow it into the source.

An exact excerpt from the repository, with the complete source file available to inspect and download.

Captured and virtual sources go
// VirtualConnection returns the one external execution context for the entire// relation set. Mixing physical stores is an explicit unsupported plan, never// a reason to scan or materialize another source implicitly.func (r *Registry) VirtualConnection(datasets []string) (*ConnectionSpec, bool, error) {	var selected *ConnectionSpec	var captured bool	for _, name := range datasets {		d, ok := r.Dataset(name)		if !ok {			return nil, false, fmt.Errorf("source dataset %s does not exist", name)		}		if !d.IsVirtual {			captured = true			continue		}		connection, ok := r.Connection(d.Connection)		if !ok {			return nil, true, fmt.Errorf("virtual source connection is unavailable")		}		if selected != nil && selected.Name != connection.Name {			return nil, true, BadRequest("cross-source virtual queries are unsupported")		}		selected = connection	}	if selected != nil && captured {		return nil, true, BadRequest("joining captured and virtual sources is unsupported")	}	return selected, selected != nil, nil} 

A captured publication does not imply that independent sources were observed at the same instant. Virtual reads have no captured history or universal cross-source query guarantee. Capture strategies and supported operations depend on the connector.

Read the capability reference

Connect the next part of the process.

Bring us a process.
We'll build it with you.

A business process, the systems it touches, and the rules it needs to follow.