{"id":1816,"library":"dagster","title":"Dagster","description":"Dagster is an orchestration platform designed for the development, production, and observation of data assets. It emphasizes defining pipelines as data assets and provides a rich development experience with built-in UI and testing capabilities. The library is actively maintained with frequent minor releases, often on a weekly basis, incorporating new features, bug fixes, and improvements.","status":"active","version":"1.12.22","language":"python","source_language":"en","source_url":"https://github.com/dagster-io/dagster","tags":["data orchestration","etl","data pipeline","mlops","workflow management","assets","data governance"],"install":[{"cmd":"pip install dagster dagster-webserver","lang":"bash","label":"Core and Web UI"},{"cmd":"pip install dagster-cloud","lang":"bash","label":"Dagster Cloud CLI (optional)"}],"dependencies":[{"reason":"Provides the local Dagster UI (Dagit), essential for development and observation.","package":"dagster-webserver","optional":false},{"reason":"CLI for interacting with Dagster Cloud deployments.","package":"dagster-cloud","optional":true},{"reason":"Required for `dagster-postgres` if you use it for storage (removed as transitive dependency in 1.12.18).","package":"psycopg2-binary","optional":true}],"imports":[{"symbol":"asset","correct":"from dagster import asset"},{"symbol":"job","correct":"from dagster import job"},{"note":"The `solid` decorator was replaced by `op` in Dagster 1.0.0.","wrong":"from dagster import solid","symbol":"op","correct":"from dagster import op"},{"symbol":"graph","correct":"from dagster import graph"},{"symbol":"Definitions","correct":"from dagster import Definitions"},{"note":"Modern Dagster uses Pydantic-style `Config` models for resource/op configuration instead of `config_schema`.","wrong":"from dagster import config_schema","symbol":"Config","correct":"from dagster import Config"},{"symbol":"Schedule","correct":"from dagster import Schedule"},{"symbol":"Sensor","correct":"from dagster import Sensor"}],"quickstart":{"code":"from dagster import Definitions, asset, job\n\n@asset\ndef my_first_asset():\n    \"\"\"A simple asset that prints a message and returns a string.\"\"\"\n    print(\"Hello, Dagster!\")\n    return \"hello\"\n\n@job\ndef my_asset_job():\n    my_first_asset()\n\n# To run this locally and see the output immediately:\nif __name__ == \"__main__\":\n    from dagster import materialize_to_memory\n    result = materialize_to_memory(assets=[my_first_asset])\n    assert result.success\n    print(f\"Asset output: {result.output_for_node('my_first_asset')}\")\n\n# For UI (Dagit) integration, save the following `Definitions` to a file (e.g., `my_repo.py`):\n# defs = Definitions(\n#     assets=[my_first_asset],\n#     jobs=[my_asset_job],\n# )\n# Then run `dagster dev -f my_repo.py` and navigate to http://localhost:3000","lang":"python","description":"This quickstart defines a simple asset and a job that materializes it. It includes a directly runnable Python snippet to execute the asset in memory. For local development with the full Dagster UI (Dagit), save the commented `Definitions` block to a file and run `dagster dev`."},"warnings":[{"fix":"Replace `@solid` with `@op` and `PipelineDefinition` with `JobDefinition` or `@job` decorator. Refer to the Dagster 1.0 migration guide for full details.","message":"Dagster 1.0.0 introduced a major API overhaul, deprecating `solid` and `pipeline` in favor of `op` and `job`/`graph` respectively. Code written for pre-1.0 versions is not compatible without migration.","severity":"breaking","affected_versions":"<1.0.0"},{"fix":"Ensure both `dagster` and `dagster-webserver` are installed: `pip install dagster dagster-webserver`.","message":"The Dagster UI (Dagit) is provided by the `dagster-webserver` package, which must be installed separately from `dagster` core for local development and observation.","severity":"gotcha","affected_versions":"All versions"},{"fix":"Explicitly add `psycopg2-binary` (or `psycopg2`) to your project's dependencies if you use `dagster-postgres`: `pip install psycopg2-binary`.","message":"Starting with Dagster 1.12.18, `psycopg2-binary` is no longer a transitive dependency of `dagster-postgres`. If you use `dagster-postgres` for event log or run storage and rely on this dependency, your environment may break.","severity":"gotcha","affected_versions":">=1.12.18"},{"fix":"For open-source Dagster, use `dagster dev`, `dagster job launch`, etc. For Dagster Cloud, install `dagster-cloud` and use `dg deploy`, `dg api`, etc.","message":"There are two main CLIs: `dagster` for open-source Dagster environments and `dg` (from `dagster-cloud`) for Dagster Cloud deployments. Using the wrong CLI can lead to confusion or errors.","severity":"gotcha","affected_versions":"All versions"},{"fix":"Define configuration using `class MyConfig(Config): ...` and type-hint your resource/op functions with it: `def my_resource(config: MyConfig): ...`.","message":"Older methods of defining resource and op configuration using `config_schema` or directly passing dicts are deprecated. The modern approach uses Pydantic-style `Config` classes.","severity":"deprecated","affected_versions":">=1.0.0"}],"env_vars":null,"search_vec":"'activ':41 'asset':16,23,67 'basi':51 'bug':55 'built':32 'built-in':31 'capabl':37 'dagster':1,2 'data':15,22,59,62,68 'defin':19 'design':7 'develop':10,28 'emphas':18 'etl':61 'experi':29 'featur':54 'fix':56 'frequent':44 'govern':69 'improv':58 'incorpor':52 'librari':39 'maintain':42 'manag':66 'minor':45 'mlop':64 'new':53 'observ':13 'often':47 'orchestr':5,60 'pipelin':20,63 'platform':6 'product':11 'provid':25 'releas':46 'rich':27 'test':36 'ui':34 'week':50 'workflow':65","created_at":"2026-04-09T05:06:29.650400+00:00","updated_at":"2026-04-16T04:48:51.927940+00:00","problems":{"verify_error":"error: Failed to parse: `dagster dagster-webserver`\n  Caused by: Expected one of `@`, `(`, `<`, `=`, `>`, `~`, `!`, `;`, found `d`\ndagster dagster-webserver\n        ^"},"ecosystem":"pypi","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":"1.13.20","cli_name":"dagster","cli_version":"dagster, version 1.13.5","type":"library","homepage":"https://dagster.io","github":"https://github.com/dagster-io/dagster","docs":"https://docs.dagster.io","changelog":"https://github.com/dagster-io/dagster/releases","pypi":"https://pypi.org/project/dagster/","npm":null,"openapi_spec":null,"status_page":null,"smithery":null,"categories":["workflow","data","devops","observability"],"base_url":null,"auth_type":null,"provenance":{"verified_status":"passing","verified_at":"2026-06-28","last_verified":"2026-08-27","next_check":"2026-07-05","install_tag":null}}