Branching and Snapshots

In development

A branch is an isolated, writable view of a bucket that starts from a point-in-time snapshot and stores only what changes. Nothing is copied to create one, and nothing reaches the parent bucket until the branch is merged. Branching works on buckets hosted on IronShard.

Snapshots

Every IronShard bucket is versioned, so a snapshot is a metadata-only record of which object versions were current at a point in time. It can cover the whole bucket or a selected prefix. Taking one copies no data and completes instantly. Snapshots can be listed, inspected, restored into the bucket, and deleted, subject to the bucket's policy.

Branches

A branch is created from the current bucket state, from a snapshot, or from another branch. It references its parent's object versions rather than copying them. A read of an object that has not been written on the branch is served from the parent. A write on the branch is stored on the branch only, and the parent is unchanged. Storage grows by the objects written on the branch, not by the size of the dataset. Branches are served by the same gateways as the parent bucket, with the same routing and latency.

Diff, Merge, and Discard

A diff compares a branch with its base, or with a target branch, and lists the objects added, modified, deleted, and in conflict. A merge applies the branch's changes to the target branch or to the main bucket state. This is the only path by which branch changes reach production. Discarding a branch drops its changes without merging, and deleting a branch removes it together with any unmerged changes.

Governance on a Branch

A branch inherits the parent bucket's access rules, geo-fence, and lineage tracking without configuration. Objects written on a branch are stored the same way as on the parent, compressed, encrypted, erasure-coded, and distributed, so no provider holds a complete file. Branch creation, writes, diffs, merges, and deletion are recorded in the audit log.

Interface

Branching is exposed on all three paths into IronShard:

  • S3 API, for buckets created through the console or the S3 API.
  • Production MCP server, for tenant-owned buckets, with an IronShard account and OAuth.
  • Public agent MCP server, for buckets an autonomous agent created for itself, with no account. The branch and snapshot tools for that path are listed, with their in-development status, in the Agent Buckets tool table.

Over MCP, objects on a branch are read and written through presigned URLs issued by the branch tools.

Who Uses Branches

TeamUse Case
Data Scientists / MLFine-tune models or test preprocessing on real data
AI Agents, RAGAn isolated branch per task or run
DevOps / PlatformTest transformations or schema migrations
Audit / ComplianceReconstruct the dataset as it existed at a past snapshot