Faster cold starts with zstd compression

We've enabled zstd compression by default for deployment images, improving cold start times when images need to be pulled to worker nodes.

Nick undefined

Nick

Founding Engineer, Trigger.dev

Faster cold starts

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
gzip vs zstd graph

Requirements

To enable zstd compression re-deploy with version 4.3.0 or later:


npx trigger.dev@latest deploy

Ready to start building?

Build and deploy your first task in 3 minutes.

Get started now