Skip to main content
Each step has a type (its role in the DAG) and an operator (the pre-coded logic that runs inside it). The Architect picks operators when it composes the pipeline; you can swap an operator from the step inspector.

Categories

Choosing an operator

The Architect generally picks the right operator from your description. When you’re swapping by hand, two questions matter:
  • Where does this step sit? Root-only operators (api_source, file_source, database_query) can only start a branch. Storage (table_sink) can only end one.
  • Is the operator fusable? Most transforms compile into a single DuckDB query when chained. Operators like fuzzy_join, cascade_join, and custom_code run in isolation. This is a performance detail, not a correctness one.

Custom code

When no operator fits, custom_code lets the Architect generate Python that runs in an isolated sandbox. Prefer a catalog operator when one exists—it’s faster, deterministic, and easier to reason about.