Skip to content

Materializations

A materialization is the record that an attempt produced a version of an asset. The attempt is the work. The materialization is the result: where the rows were written, the columns that were observed, the row count, the upstream materialization ids it read, and the check results.

The record is appended. A later run writes a new materialization. The old one stays. The fields that change afterwards are checks, when a check result is recorded, and verified_at, when a later attempt confirms the current result is still current.

latest is a pointer on the asset. It names the materialization readers treat as current.

Terminal window
puppi assets
puppi assets core/customer

puppi assets prints every asset in the active deployment: role, dependencies, the latest id, the row count, the staleness verdict, and the next scheduled run. puppi assets <key> adds the materialization history.

The engine keeps the data for the newest two materializations of an asset. Older records remain as history. puppi rollback will not point at them.

A run that fails its checks can still write a materialization. If a blocking check fails, that row is quarantined and latest stays on the previous one. See Quarantine.

A source runs when a run or a schedule reaches it. Afterwards the engine may decide nothing arrived.

An append source writes no materialization when the cursor did not advance and the attempt emitted no rows. A full_refresh source writes no materialization when its content hash matches the hash on the current latest. The attempt is skipped, and verified_at is stamped on the current latest.

The first run of an asset always writes a materialization, including an empty one. An empty asset and an asset that has never run are different records. A full_refresh source whose adapter returns no content hash writes a materialization on every run.

puppi run --local prints rows and the contract verdict. It writes no materialization, moves no latest, and records no lineage. Those happen on a run the engine planned.