Skip to main content

What is a Pipeline?

A pipeline is a directed acyclic graph (DAG) of actions that execute in a defined order. Pipelines automate workflows by orchestrating multiple steps with dependencies, conditions, and error handling.

Directed Acyclic Graphs (DAGs)

Directed

Actions connect with arrows showing execution order. Data flows from parent to child actions.

Acyclic

No circular dependencies - pipelines always progress forward and eventually complete.

Graph

Multiple paths enable parallel execution and conditional branching. DAG Example

Actions

Actions are the building blocks of pipelines. Each action performs a specific operation.

Available Action Types

CategoryActionPurpose
Control FlowLogWrite log messages
Conditional BranchExecute different paths based on conditions
TransformModify data between steps
AggregateCombine outputs from multiple actions
Set OutputDefine pipeline outputs
FailExplicitly fail the pipeline
Wait UntilPause until a condition is met
DeploymentDeploy ModelCreate model deployment endpoint
Scale DeploymentAdjust replica count
Configure Rate LimitingSet rate limits for endpoints
Delete DeploymentRemove deployment
Model OperationsAdd ModelAdd HuggingFace or URL model
Add Cloud ModelAdd OpenAI/Anthropic model
Model BenchmarkRun performance tests
Delete ModelRemove model from registry
ClusterCluster Health CheckVerify cluster status
IntegrationHTTP RequestMake external API calls
Send NotificationSend alerts via email/Slack

Action Configuration

Each action can be configured with:
  • Parameters: Input values and configuration
  • Timeout: Maximum execution time
  • Retry Logic: Automatic retry on failure
  • Conditions: When to execute the action

Dependencies

Actions execute based on their dependencies: Sequential: Actions run one after another Parallel: Independent actions run concurrently Convergent: Multiple actions feed into a single downstream action

Parameters and Outputs

Action Parameters

Each action has its own configuration parameters defined by the action type. For example:
  • Add Model requires model_uri, model_name, model_source
  • Deploy Model requires model_id, cluster_id, deployment_name
  • Conditional Branch requires a condition expression
Configure these in the visual editor or reference outputs from previous steps:
steps.add_model.output.model_id

Action Outputs

Actions produce outputs that downstream actions can access:
steps.previous_action.output.result
Use Set Output action to define pipeline-level outputs visible after execution completes.

Execution Flow

  1. Trigger - Pipeline starts (manual, scheduled, or event-based)
  2. Resolve - Parameters and dependencies are resolved
  3. Execute - Actions run in dependency order
  4. Complete - Pipeline finishes with status (succeeded/failed)

Conditional Logic

Use Conditional Branch to execute different paths based on action outputs:
steps.deployment.output.status == "active"
Conditions support:
  • Equality checks (==, !=)
  • Comparisons (>, <, >=, <=)
  • Logical operators (&&, ||)
  • References to outputs from previous steps

Error Handling

Pipelines handle failures automatically:
  • Retries: Actions can retry on transient failures
  • Fail Action: Explicitly fail with a message
  • Skip Downstream: Failed actions skip dependent steps
  • Logs: All errors are captured and logged

Best Practices

Keep It Simple: Start with small, focused workflows
Use Conditionals: Branch based on environment or state
Add Logging: Use Log actions for visibility
Set Outputs: Capture important results
Test Thoroughly: Execute with different parameters

Next Steps