Back to Ingestion and Orchestration

Modern Orchestration with Dagster — Software-Defined Assets

Newer orchestrators address Airflow's pain points. Both are credible alternatives with different philosophies. FIND_VIDEO: search 'dagster vs prefect vs airflow comparison' — recommended channel: Dagster / Prefect / Kahan Data Solutions. Aim for 10 min or under.

29 minutesVideo LessonPDF notes
🎯 Free Guest Mode: You are learning for free. Sign in to save your completion progress and quiz answers.

Ready to continue?

Mark this lesson as complete when you're ready to proceed.

Key moments

  1. Project Scaffolding — Initialize the Gitpod development environment and scaffold a standard Dagster project using the CLI.
  2. Environment & Dagit Launch — Examine the default configuration files and start the Dagit web UI.
  3. Extraction Asset Definition — Create the initial asset to fetch raw stargazer records from the GitHub API.
  4. Transformation Asset Chaining — Build the weekly aggregation asset by referencing the upstream extraction asset as an input parameter.
  5. Visualization and Loading Assets — Define assets that generate a Jupyter notebook report and upload the final output to GitHub Gist.
  6. Materialization and Error Recovery — Materialize the asset graph, resolve a missing context parameter bug, and re-execute failed assets selectively.
  7. Job and Schedule Creation — Wrap all asset definitions into a refresh job and configure a recurring daily schedule.
  8. Resource Configuration — Refactor raw API tokens into a parameterized resource with a validated configuration schema.
PDF notes

Frequently asked questions

How does Dagster determine execution order across assets?

Dagster parses function parameter names in downstream assets and matches them to upstream asset names to construct the dependency graph.

Do I need to manually serialize and load files between asset steps?

No, Dagster's built-in IO managers automatically handle saving outputs and loading them as inputs for downstream functions.

Why did my asset fail when calling context.log.info?

The `context` parameter is not globally available; it must be explicitly defined as an argument in your asset function signature.

What is the primary difference between Dagit and the Dagster CLI?

The Dagster CLI scaffolds and executes project commands, whereas Dagit is the web-based graphical interface for visualizing and materializing assets.

How was this lesson?

Your feedback helps us refine explanations and catch bugs.