# Publish outputs as data sources

Workflow results become more useful when they are stored with a stable identity and exposed to the apps or processes that consume them. Decide which outputs are temporary processing material and which form a durable dataset.

## Choose the publication boundary

A transformation can emit records for the next job without making them a reusable dataset inside your workspace. Use a suitable destination, such as **Write derived records**, when results need to be retained and discovered as workflow data.

1. Identify the final business records you want to keep.
2. Configure the destination's record type and identity fields.
3. Choose a clear data-source name where naming is supported.
4. Run a small example and inspect the persistent outputs.
5. Bind the intended app or downstream workflow to that source.
6. Check how repeated runs update or accumulate records.

A stable name helps people recognize a dataset; the source's underlying identity keeps bindings unambiguous. Two sources with similar names should not be assumed to contain interchangeable records.

## Preserve provenance

Useful output retains the source document or record reference, producing workflow and job, run identity, and relevant schema or revision context. These details let a person trace a suspicious value back to its origin and distinguish an old extraction from a current one.

For reviewed output, preserve the distinction between generated proposals and committed decisions. A derived record can make a result convenient to browse without replacing the authoritative review history.

## Plan for reprocessing

Choose keys that represent the intended record identity. If repeated processing should update the same item, a randomly generated key for every run can create unwanted duplicates. If history should accumulate, overwriting one stable key can erase the distinctions users need.

Full and incremental modes do not decide all of these semantics for you. Check the destination's supported write strategy and test a second run before connecting a production app.

Not every intermediate step should become a permanent source. Publish the records that users need, and use execution details for transient diagnostics. See [outputs](/docs/workflows/outputs), [apps](/docs/apps/overview), and [reliability](/docs/workflows/reliability).
