Tigris Snapshots and Forking
Prerequisites
Before doing anything else, install the Tigris CLI if it's not already available:
If you need to install it, tell the user: "I'm installing the Tigris CLI (@tigrisdata/cli) so we can work with Tigris object storage."
Overview
Snapshots capture your entire bucket at a point in time. Forking creates instant, isolated copies from snapshots using copy-on-write.
Core principle: Snapshots and forks protect your data from deletion. Even if you delete everything in a fork, the source bucket data remains intact.
Why Snapshots Matter
Object storage serves as the primary data store for many systems. It needs safety features:
- Point-in-time recovery - Restore after accidental deletion or corruption
- Version control - Tag meaningful states like releases
- Reproducibility - Recreate exact environments for debugging or testing
- Deletion protection - Forks can be destroyed without affecting source
Traditional object versioning only works per-object. To restore a bucket to a point in time, you must check and restore each object individually. Tigris snapshots capture the entire bucket state instantly.
Why Forking Matters
Forking creates isolated bucket copies instantly - even for terabytes of data:
- Developer sandboxes - Test with real production data safely
- AI agent environments - Spin up agents with pre-loaded dependencies
- Load testing - Use production data without risk
- Feature branch testing - Parallel environments for experiments
- Training experiments - Fork datasets to test without affecting source
How it works: Tigris uses immutable objects with backwards-ordered timestamps. Forks read from the parent snapshot until new data overwrites. This makes forking essentially free - no data copying required.
Quick Reference
Create Snapshot
Prerequisite: Bucket must have enableSnapshot: true when created.
List Snapshots
Create Fork from Snapshot
Read from Snapshot Version
Access historical data without forking:
Deletion Protection in Action
The fork's deletion only affects the fork. Source data remains accessible in the parent bucket and all snapshots.
Use Cases
Developer Sandboxes
AI Agent Environments
Pre-Migration Backups
Common Mistakes
Limitations
- Existing buckets cannot be snapshot-enabled (must create new bucket)
- Snapshot buckets require STANDARD storage tier
- Snapshot buckets don't support lifecycle transitions or TTL
How It Works (Deep Dive)
A snapshot is a single 64-bit integer representing nanoseconds since Unix epoch. Tigris stores objects with reverse-ordered timestamps, so the most recent version sorts first. When you snapshot, Tigris records the current time. Reading from a snapshot queries for the newest object version before that timestamp.
Forking adds recursive indirection: child bucket objects override the parent, but missing objects recurse through the parent snapshot. This makes forking instant - no data copying, just metadata pointers.


