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#

Schedules launch runs on a fixed interval, while sensors allow you to do so based on an external state change. These features also support partitioning and backfilling.


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.


Workspaces and repositories#

Workspaces are collections of repositories and info about where to find them. Dagster tools like Dagit and the Dagster CLI use workspaces to load your code.


Resources#

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

Learn more about resources.


Dagit#

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

Learn more about Dagit.


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.