Concepts#

Learn about Dagster's core concepts and how to use them in your data platform.


Software-defined assets#

An asset is an object in persistent storage, such as a table, file, or persisted machine learning model. A software-defined asset is a Dagster object that couples an asset to the function and upstream assets used to produce its contents.


Ops#

Ops are the core unit of computation in Dagster. They typically perform relatively simple tasks, such as executing a database query or sending a Slack message.


Graphs#

A graph is a set of interconnected ops or sub-graphs. While individual ops typically perform simple tasks, ops can be assembled into a graph to accomplish complex tasks.


Jobs#

Jobs are the main unit of execution and monitoring in Dagster. The core of a job is a graph of ops connected via data dependencies.


Schedules and sensors#

Schedules launch runs on a fixed interval, while sensors allow you to do so based on an external state change.


Partitions and backfills#

A software-defined asset or job can represent a collection of partitions that can be tracked and executed independently.


I/O management#

IO Managers are user-provided objects that store asset and op outputs and load them as inputs to downstream assets and ops.


Configuration#

Dagster provides a configuration system that allows you to document, schematize, and error-check your configuration.


Code locations#

A code location is a collection of Dagster definitions, including assets, jobs, schedules, sensors, and resources. Dagster tools like the Dagster webserver/UI and CLI use code locations to load your code.

Learn more about code locations.


Resources#

Resources enable you to separate logic from external dependencies, making developing and testing possible in multiple environments.

Learn more about resources.


Dagster UI#

The Dagster UI is a web-based interface for viewing and interacting with Dagster objects.

Learn more about the Dagster UI.


GraphQL API#

The GraphQL API allows you to interact programmatically with Dagster.


Dagster types#

The Dagster type system provides gradual, opt-in typing for the inputs and outputs of assets and ops.

Learn more about Dagster types.


Logging#

A rich, extensible logging system, Dagster's built-in logger tracks all execution events. Loggers can also be customized to fit your infrastructure.


Testing#

Dagster enables you to build testable and maintainable data applications. It provides ways to allow you unit-test your data applications, separate business logic from environments, and set explicit expectations on uncontrollable inputs.

Learn more about testing.