We've enabled zstd compression by default for new deployments, improving cold start times when images need to be pulled to worker nodes.
What's new
There are two types of cold starts:
- Fast: image is already cached on the worker
- Slow: image needs to be pulled from the container registry first
This change speeds up slow cold starts, which are more likely to happen after new deployments, during scale-up events, or when workers are freshly provisioned.
In production, we've seen image pulls drop by up to 30%. For example, a cold start that previously took 10 seconds now takes ~7 seconds.
Under the hood
Images now use OCI format with zstd-compressed layers, compatible with all modern container runtimes (containerd 1.5+, Docker 20.10+, CRI-O 1.22+).
Zstd compression provides two benefits over the previous gzip default:
- Smaller images: 12% reduction in compressed image size
- Faster decompression: 6x quicker, cutting seconds off cold starts
Requirements
To enable zstd compression re-deploy with version 4.3.0 or later:
npx trigger.dev@latest deploy
