A refined Dagster experience. Faster navigation, GA Components, plug-and-play deployment, improved orchestration with FreshnessPolicies, and a new Support Center for builders at scale.
Highlights
Dagster 1.12 continues our mission to make data orchestration faster, simpler, and more reliable from a redesigned UI to powerful new Components and deployment shortcuts.
- A refreshed UI with a cleaner layout and collapsible sidebar
- Components are now GA, with new integrations and state-backed capabilities
- Simplified deployment
- workflows with
dg scaffoldfor Docker + GitHub Actions - FreshnessPolicies GA, replacing the legacy freshness API
- Quality-of-life upgrades for backfills, partitions, and executor behavior
- A brand-new Support Center and reorganized docs with dozens of new examples
Let’s dig in.
A Refreshed, Streamlined UI
We’ve redesigned Dagster’s UI to make it faster, cleaner, and easier to navigate. The top navigation has been reimagined as a collapsible sidebar, freeing up visual space and bringing your most-used workflows, like runs, assets, and deployments, front and center.
The result is a more cohesive and intuitive experience across Dagster+ Hybrid and Serverless, designed to help you find what you need at a glance and stay focused on building.

Components GA
After extensive testing and community feedback, the Components framework and the dg CLI are now Generally Available and fully supported across the Dagster platform.
This milestone cements Components as the default foundation for new Dagster projects, providing a unified, composable way to define and manage integrations, resources, and orchestration logic across your data stack.
Standardized Integrations
We’ve standardized the interface for integration components, making them easier to customize and extend. Each component now exposes two consistent methods, execute() and get_asset_spec(), which can be subclassed or overridden for advanced customization.
This unified interface means integrations behave predictably across the platform, making it simpler to tailor components to your environment without reinventing the wheel.
Here’s an example of how you might extend a component with custom logic:
from collections.abc import Iterator
from dagster_sling import (
SlingReplicationCollectionComponent,
SlingReplicationSpecModel,
SlingResource,
)
import dagster as dg
class CustomSlingReplicationComponent(SlingReplicationCollectionComponent):
def execute(
self,
context: dg.AssetExecutionContext,
sling: SlingResource,
replication_spec_model: SlingReplicationSpecModel,
) -> Iterator:
# Add custom logging before execution
context.log.info("Custom")
# Call the sling replicate with debug mode enabled
return sling.replicate(context=context, debug=True)More Components, More Power
We’ve added a new batch of integration components to simplify setup with common analytics and data tools:
These join the growing collection of out-of-the-box Components built to make your pipelines interoperable by default, reducing setup friction and accelerating integration across your data ecosystem.
State-Backed Components
A big step forward for reliability and maintainability, the new StateBackedComponent base class enables components to persist and manage state separately from YAML / Python configuration. This is especially valuable for integrations that fetch or synchronize external data.
State can now be stored locally, in versioned storage, or via code-server snapshots. Many popular integrations like:
- AirbyteWorkspaceComponent
- FivetranAccountComponent
- PowerBIWorkspaceComponent
- AirflowInstanceComponent
- DbtProjectComponent
# defs.yaml
type: dagster_fivetran.FivetranAccountComponent
attributes:
...
defs_state:
management_type: LOCAL_FILESYSTEMSimplified Deployment
You shouldn’t have to wrestle with CI/CD just to get a Dagster project online. Two new dg scaffold commands make deployment practically plug-and-play:
dg scaffold build-artifactsGenerates Docker and configuration files to build and deploy your project to Dagster Cloud, complete with support for multiple container registries (ECR, Docker Hub, GHCR, ACR, GCR).dg scaffold github-actionsSpins up a complete GitHub Actions workflow for CI/CD deployment to Dagster Cloud. It auto-detects Serverless vs Hybrid agents and walks you through setting up required secrets.
These commands make it easy to bootstrap production-ready pipelines and keep them running smoothly.
Core Orchestration Upgrades
This update brings FreshnessPolicies to General Availability and adds new orchestration features designed for reliability and scalability.
Originally introduced in 1.10, the new FreshnessPolicy API is now stable and replaces the old LegacyFreshnessPolicy.
FreshnessPolicyis now exported directly from dagster.- The
FreshnessDaemonruns by default, no dagster.yaml switch needed. - Old
build_*_freshness_checksmethods are marked “superceded,” but remain functional for backward compatibility.
Use FreshnessPolicy for all new use cases to get better visibility and control over asset staleness.
Configurable Backfills
You can now provide run config when launching a backfill, letting you define consistent settings across all runs, perfect for parameterized replays or targeted batch updates.
Time-Based Partition Exclusions
TimeWindowPartitionsDefinition
now supports an exclusions parameter. This lets you skip weekends, holidays, or maintenance windows, specified as cron strings or datetime objects, for fine-grained control over scheduling.
import dagster as dg
from datetime import datetime
daily_partitions = dg.DailyPartitionsDefinition(
start_date="2022-03-12",
exclusions=["0 0 * * 0", "0 0 * * 6"] # Exclude Sundays and Saturdays
)Execution Dependency Options
All Executors now accept a step_dependency_config with require_upstream_step_success.
Set it to False to allow downstream steps to start as soon as their required upstream outputs are ready, even if other outputs from that step are still running.
This is a huge win for multi-asset parallelism and complex dependency graphs.
Support & Docs Improvements
We’ve launched a brand-new Support Center with guides and troubleshooting content for both Dagster+ Hybrid and Serverless. You’ll find curated answers from our support team, now fully self-serve.
In the docs, we’ve gone deep on reorganization and new content:
- New guides: troubleshooting hybrid deployments, diagnosing slow code with py-spy, and resolving sensor timeout issues.
- Examples overhaul: the Examples section has easier navigation including quick links to Dagster University, our internal Dagster platform, and customer Deep Dives. As well as new examples for DSpy, PyTorch, and advanced mini-examples covering dynamic fanout, caching, parallelism, and code-sharing.
Acknowledgments
This release was made possible by feedback from our users and contributors, your bug reports, feature requests, and insights shape Dagster every day.
- pmartincalvo
- elipinska
- piggybox
- bollwyvl
- aksestok
- SoerenStahlmann
- 2bxtech
- kkanter-asml
- MandyMeindersma
- DominikHallab
- zyd14
- nathanskone
- edgarrmondragon
- stevenayers
- RobBrownFreeAgent
- charlottevdscheun
- aaronprice00
- aleewen
- dschafer
- chazmo03
- dwisdom0
- jmccartin
- CarlyAThomas
- BoLiuV5
- ajohnson5
- j1wilmot
- yumazak
- brunobbaraujo
- CompRhys
- HynekBlaha
- kevJ711
- tintamarre
- nhuray
- EFox2413
- oohwooh
- emmanuel-ferdman




