Skip to content

feat: s3 adapter for snapshot#877

Merged
rmrt1n merged 1 commit intomainfrom
daim/feat_s3_adapter_for_snapshot
Mar 22, 2026
Merged

feat: s3 adapter for snapshot#877
rmrt1n merged 1 commit intomainfrom
daim/feat_s3_adapter_for_snapshot

Conversation

@zulkhair
Copy link
Copy Markdown
Contributor

@zulkhair zulkhair commented Mar 13, 2026

TL;DR

Added AWS S3 support as a new snapshot storage backend for Cardinal worlds.

What changed?

  • Added AWS SDK v2 dependencies for S3 integration
  • Implemented S3Storage that stores snapshots in S3 buckets using the key pattern {org}/{project}/{serviceId}/snapshot
  • Extended snapshot storage type enum to include StorageTypeS3 alongside existing NOP and JetStream options
  • Updated world initialization to handle S3 storage configuration
  • Added environment variable support for S3 configuration (CARDINAL_S3_BUCKET, CARDINAL_S3_ENDPOINT)

How to test?

You can test it using world start --snapshot-storage=s3 using this version of world-cli
https://github.com/Argus-Labs/monorepo/pull/602

Why make this change?

This enables Cardinal worlds to use S3 for snapshot persistence, providing a scalable cloud storage option beyond the existing JetStream and NOP backends. S3 storage offers durability, versioning capabilities, and compatibility with various cloud providers and self-hosted solutions like MinIO.

Copy link
Copy Markdown
Contributor Author


How to use the Graphite Merge Queue

Add the label graphite/merge to this PR to add it to the merge queue.

You must have a Graphite account in order to use the merge queue. Sign up using this link.

An organization admin has enabled the Graphite Merge Queue in this repository.

Please do not merge from GitHub as this will restart CI on PRs being processed by the merge queue.

This stack of pull requests is managed by Graphite. Learn more about stacking.

@zulkhair zulkhair requested a review from rmrt1n March 13, 2026 15:41
@zulkhair zulkhair marked this pull request as ready for review March 13, 2026 16:03
Copy link
Copy Markdown
Contributor

@rmrt1n rmrt1n left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Small nits, and fix the lint errors

@zulkhair zulkhair force-pushed the daim/feat_s3_adapter_for_snapshot branch from 03683f2 to 1d8860c Compare March 16, 2026 15:41
@zulkhair zulkhair requested a review from rmrt1n March 16, 2026 16:50
@rmrt1n rmrt1n force-pushed the daim/feat_s3_adapter_for_snapshot branch from 1d8860c to 0066227 Compare March 22, 2026 11:25
@rmrt1n rmrt1n merged commit ddefa5b into main Mar 22, 2026
8 checks passed
@rmrt1n rmrt1n deleted the daim/feat_s3_adapter_for_snapshot branch March 22, 2026 11:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants