Attach a FreshnessPolicy(maximum_lag_minutes=60) to an asset using the freshness_policy argument in @asset or AssetSpec to declare that the asset must be materialized within 60 minutes of its upstream sources
Enable auto-materialization by setting AutoMaterializePolicy.eager() on the asset; Dagster will launch materialization runs automatically when the upstream assets are updated and the freshness window is violated
Use AutoMaterializePolicy.lazy() on assets that should only materialize when downstream assets request them, avoiding unnecessary upstream computation
Configure a Dagster+ sensor or the open-source AutoMaterializeSensor to evaluate freshness policies on a schedule and emit run requests for stale assets
Inspect auto-materialization decisions in the Dagster UI under the asset's Automation tab to understand why an asset was or was not automatically materialized
Known gotchas
Freshness policies evaluate materialization timestamps, not data timestamps; an asset materialized at the right time but with stale upstream data can appear fresh even though its content is out of date
Auto-materialization triggers a new run for each stale asset independently; if many assets become stale simultaneously, a large number of concurrent runs can be launched — set max_materializations_per_minute in the policy to throttle
FreshnessPolicy is deprecated in newer Dagster versions in favor of explicit observable assets with cron-based auto-materialization rules; check the current Dagster release notes before implementing
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp