Overview
By default, pipelines run as long-running deployments that continuously process data. Job mode allows you to run a pipeline as a one-time task that runs to completion and then exits.When to use job mode
Use job mode for:- Historical Solana backfills: Process a specific range of Solana blocks using
end_block - One-time data migrations: Move data from one system to another (requires manual termination for non-Solana sources)
- Testing and development: Quick runs without maintaining a long-running deployment
Configuration
Addjob: true to your pipeline configuration along with end_block on your Solana source:
How termination works
For Solana sources withend_block set:
- The source processes blocks up to
end_block - The engine waits for all checkpoints to finalize, ensuring data is fully persisted
- The pipeline terminates cleanly
job: true deploys the pipeline as a Kubernetes Job instead of a Deployment, which means:
- No automatic restarts on failure
- Auto-cleanup 1 hour after the process exits
Job behavior
Whenjob: true is set:
- No restarts: Failed jobs do not automatically restart (unlike deployments)
- Auto-cleanup: Jobs are automatically deleted 1 hour after termination (success or failure)
- Cannot switch: Once deployed as a job, you cannot update to a deployment without deleting it first
Example: Solana block range processing
Limitations
Job mode automatic termination (end_block) is currently only supported for Solana dataset sources. For other sources (EVM chains like Ethereum, Arbitrum, etc.):
- The
end_blockconfiguration is not recognized by EVM dataset sources - SQL-level filtering (e.g.,
WHERE block_number BETWEEN ...) filters data but does not cause the pipeline to terminate — the source continues consuming data indefinitely - Setting
job: truedeploys as a Kubernetes Job, but the pipeline process itself will not exit
Monitoring job status
View job status with:Job vs deployment
| Feature | Job (job: true) | Deployment (job: false, default) |
|---|---|---|
| Duration | Runs to completion (Solana only) | Continuous processing |
| Restart on failure | No | Yes (automatic) |
| Resource cleanup | Auto-deleted 1 hour after termination | Persists until deleted |
| Use case | One-time Solana backfills | Real-time streaming |
| Update behavior | Must delete first | Can update in-place |
Best practices
Use end_block for Solana sources
Use end_block for Solana sources
For Solana dataset sources, always define
start_block and end_block on the source to ensure the pipeline terminates cleanly:Use appropriate resource sizes
Use appropriate resource sizes
For large backfills, use larger resource sizes to process data faster:
Monitor completion
Monitor completion
Jobs auto-delete after 1 hour of termination. Monitor logs before cleanup:
Delete before redeployment
Delete before redeployment
Always delete completed jobs before redeploying: