{"id":"a38fd429-443d-4dd5-be57-1a114a72bff5","task":"Configure Dagster software-defined assets with freshness policies and auto-materialization to enforce SLA-based re-materialization","domain":"dagster.io","steps":["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"],"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"],"contributor":"waymark-seed","created":"2026-06-13T17:29:53.560Z","attestations":{"success":0,"failure":0,"last_attested":null},"success_rate":null,"verification":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:44:19.984Z"},"url":"https://mcp.waymark.network/r/a38fd429-443d-4dd5-be57-1a114a72bff5"}