> ## Documentation Index
> Fetch the complete documentation index at: https://docs.goldsky.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Operating pipelines

> Guide to common Turbo pipeline operations

This guide covers the day-to-day operations of a Turbo pipeline: deploying, pausing, resuming, restarting, updating, monitoring, and deleting. Every operation is a `goldsky turbo` command; see the [CLI reference](/turbo-pipelines/cli-reference) for the complete list of flags.

### Deploying a pipeline

There are two main ways to deploy a pipeline: in the web app or by using the CLI.

<Note>
  If you prefer to deploy pipelines using a web interface, check out [Goldsky Flow](/turbo-pipelines/quickstart#goldsky-flow), the visual canvas editor in the dashboard.
</Note>

#### `apply` command + pipeline configuration

The `goldsky turbo apply` command expects a pipeline configuration file. For example:

```yaml base-logs.yaml theme={"dark"}
name: base-logs-pipeline
resource_size: s

sources:
  base_logs:
    type: dataset
    dataset_name: base.raw_logs
    version: 1.0.0
    start_at: latest

transforms: {}

sinks:
  postgres_base_logs:
    type: postgres
    from: base_logs
    schema: public
    table: base_logs
    secret_name: GOLDSKY_SECRET
    primary_key: id
```

Save the configuration in a file and run:

```bash theme={"dark"}
goldsky turbo apply base-logs.yaml
```

This validates the configuration, creates (or updates) the pipeline in your current project, and starts processing data. Pass `-i` to open [live inspect](/turbo-pipelines/live-inspect) immediately after deployment.

You can also check a configuration without deploying it:

```bash theme={"dark"}
goldsky turbo validate base-logs.yaml
```

<Tip>
  Most lifecycle commands accept either the pipeline name (`base-logs-pipeline`) or the YAML file via `-f` (`-f base-logs.yaml`); the name is read from the file's `name` field.
</Tip>

### Pausing a pipeline

`goldsky turbo pause <name>` temporarily stops a running pipeline while preserving its checkpoint state for later resumption:

```bash theme={"dark"}
goldsky turbo pause base-logs-pipeline
```

Because Turbo pipelines continuously checkpoint their progress, no snapshot step is needed before pausing; the pipeline will pick up where it left off when resumed.

### Resuming a pipeline

Resume a previously paused pipeline with:

```bash theme={"dark"}
goldsky turbo resume base-logs-pipeline
```

The pipeline restores its running state and continues from the last checkpoint.

<Note>
  You can only resume a paused pipeline. Attempting to resume an already running pipeline will return an error.
</Note>

### Restarting a pipeline

`goldsky turbo restart <name>` triggers a fresh pod restart for a running or paused pipeline. This is useful for recovering from issues:

```bash theme={"dark"}
goldsky turbo restart base-logs-pipeline
```

To discard all checkpoints and reprocess data from the beginning:

```bash theme={"dark"}
goldsky turbo restart base-logs-pipeline --clear-state
```

<Note>
  **Restart vs resume**: use `resume` to restore a paused pipeline without restarting pods. Use `restart` when you need a fresh pod restart, such as after configuration changes or to recover from issues.
</Note>

<Warning>
  Restart is not supported for [job-mode pipelines](/turbo-pipelines/job-mode). Use `delete` and `apply` to recreate the job instead.
</Warning>

### Applying updates to pipeline configuration

To update a pipeline, edit its YAML file and re-apply it. For example, to change the description and resource size:

```yaml base-logs.yaml theme={"dark"}
name: base-logs-pipeline
description: a new description for my pipeline
resource_size: xl
# ...sources, transforms, and sinks unchanged
```

```bash theme={"dark"}
goldsky turbo apply base-logs.yaml
```

When a pipeline with the same name already exists, `apply` performs a server-side upsert that preserves checkpoints: the pipeline continues from where it left off with the new configuration. This is the common flow when you found an issue with a transform or sink and want to fix it without reprocessing history.

<Warning>
  To have a pipeline restart from scratch instead, rename the pipeline (or the specific source node) so the existing checkpoints aren't reused, or run `goldsky turbo restart <name> --clear-state`.
</Warning>

For a complete reference on the configuration attributes you can apply, check the [pipeline configuration reference](/turbo-pipelines/pipeline-config).

### Monitoring a pipeline

Turbo gives you three complementary views into a running pipeline:

* **Status**: `goldsky turbo list` shows every pipeline in your project and its current state.
* **Logs**: `goldsky turbo logs <name> -f` streams the pipeline's runtime output in real time. See [viewing logs](/turbo-pipelines/cli-reference#viewing-logs) for filtering options.
* **Live data**: `goldsky turbo inspect <name>` opens an interactive TUI showing the actual records flowing through each source, transform, and sink. See the [Live inspect](/turbo-pipelines/live-inspect) guide.

For project-wide health signals (lag, throughput, checkpoint failures, and sink performance), use the [health dashboard](/turbo-pipelines/health-dashboard) in the web app.

### Inspecting checkpoint state

Turbo pipelines periodically checkpoint their position so they can resume after pauses, restarts, and updates. To see a pipeline's checkpoint state entries:

```bash theme={"dark"}
goldsky turbo state list base-logs-pipeline
```

This is primarily useful when debugging checkpoint-related behavior or confirming what would be cleared by `--clear-state`.

### Deleting a pipeline

Although paused pipelines don't consume processing resources, it's always nice to keep your project clean and remove pipelines you aren't going to use any longer. You can delete pipelines with the `goldsky turbo delete` command:

```bash theme={"dark"}
goldsky turbo delete base-logs-pipeline
```

By default, deleting a pipeline also clears its checkpoint state. Pass `--clear-state=false` to retain the state, so re-applying a pipeline with the same name resumes from the last checkpoint.

<Note>
  Pipelines running in [job mode](/turbo-pipelines/job-mode) don't need manual cleanup; they are automatically deleted 1 hour after termination.
</Note>


## Related topics

- [ERC-1155 transfers](/turbo-pipelines/guides/token-transfers/ERC-1155-transfers.md)
- [Which product do I need?](/which-product.md)
- [Pipeline cookbook](/turbo-pipelines/reference/pipeline-cookbook.md)
- [Turbo Pipelines (turbo)](/compose/context/turbo.md)
- [Deploy a Turbo pipeline](/turbo-pipelines/quickstart.md)
