Overview
Turbo pipelines are defined using YAML configuration files that specify sources, transforms, and sinks. This guide covers the complete configuration syntax.Basic Structure
Top-Level Fields
string
required
Unique identifier for your pipeline. Must use only lowercase letters, numbers, and hyphens, and start and end with a letter or number (e.g.,
erc20-tracker, solana-blocks).string
default:"s"
Resource allocation for the pipeline. Each tier roughly doubles the previous tier’s CPU and memory. CPU limit is 3x the request; memory has no limit.
string
Optional description of what the pipeline does.
boolean
default:"false"
Run the pipeline as a one-time job instead of a long-running stream. Jobs run to a terminal state (success or failure) and auto-delete 1 hour after termination. See the Job Mode guide for details.
Sources
Define where your data comes from. See the Data Sources for detailed examples with EVM and Solana datasets.Dataset Source
Transforms
Process and transform your data. See the Transforms documentation for details.SQL Transform
FROM clause of the query. There is no separate from: field.
Example:
Dynamic Table
HTTP Handler Transform
WebAssembly Script Transform
Sinks
Write processed data to destinations. See the Sinks documentation for complete information.PostgreSQL Sink
PostgreSQL Aggregation Sink
ClickHouse Sink
Webhook Sink
Kafka Sink
SQS Sink
Complete Example
Here’s a complete pipeline that demonstrates multiple features:Complete multi-chain pipeline example
Reference Names
Throughout your pipeline, you reference sources and transforms by their configured names:- Use descriptive, lowercase names with underscores or hyphens
- Avoid special characters except
_and- - Examples:
ethereum_blocks,filtered-transfers,enriched_data
Secrets
Secrets store sensitive information like database credentials:Creating Secrets
Using Secrets
Reference secrets in your pipeline configuration:Secret Formats
PostgreSQL:Validation
Before deploying, validate your pipeline configuration:- YAML syntax errors
- Required fields
- Invalid parameter values
- Source/transform/sink references
- SQL syntax (basic validation)
Best Practices
1. Use descriptive names
1. Use descriptive names
Choose names that clearly indicate what each component does:
2. Comment your configuration
2. Comment your configuration
Add comments to explain complex logic:
3. Start with small resource sizes
3. Start with small resource sizes
Begin with
resource_size: s and scale up if needed:4. Use `start_at: latest` for new pipelines
4. Use `start_at: latest` for new pipelines
Unless you need historical data, start from the latest:
5. Validate before deploying
5. Validate before deploying
Always validate your configuration: