Description
What's the issue or suggestion?
A Definitions object is a set of Dagster definitions available and loadable by Dagster tools.
This is a circular sentence. If a definitions object is a set of Dagster definitions available then what are the Dagster definitions and what makes them available vs not available? It's totally unclear.
Additionally, the added explanation does not really help explain:
The Definitions object is used to assign definitions to a code location, and each code location can only have a single Definitions object. This object maps to one code location. With code locations, users isolate multiple Dagster projects from each other without requiring multiple deployments. You’ll learn more about code locations a bit later in this lesson.
What are code locations, and why can they have only a single Definitions object? Okay so the cardinality between Defintions objects and code locations are 1:1, but that doesn't really explain the rest of it.
Additional information
A Definitions object is like a project manifest for Dagster - it bundles together all the assets, jobs, schedules, and other components that make up a single Dagster project. It's like a menu that tells Dagster exactly what's available to run in this specific project. Each separate project (called a code location) needs its own Definitions object, and you can't have multiple Definitions objects in the same location. This setup lets you keep different Dagster projects completely separate from each other, without needing to set up multiple Dagster deployments.
Why do we need this?
Two main reasons:
- Project Isolation: Let's say you have two different data projects:
# analytics/definitions.py
defs = Definitions(
assets=[revenue_dashboard, customer_metrics]
)
# marketing/definitions.py
defs = Definitions(
assets=[email_campaigns, social_media_stats]
)
Each project has its own Definitions, so they don't interfere with each other.
- Discovery: When Dagster starts up, it looks for these Definitions objects to know what assets, jobs, and resources are available to run.
Message from the maintainers
Impacted by this issue? Give it a 👍! We factor engagement into prioritization.