spinframework / spinframework/spin
Add an S3 key/value storage provider interface
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 6.5k
- Forks
- 310
- Avg merge
- 1d 20h
- Merged PRs (30d)
- 24
Description
There exists the capability to use a different storage backend for the different key/value stores e.g. https://developer.fermyon.com/spin/v2/dynamic-configuration#libsql-storage-provider.
A key aspect of many applications is object storage for cheap storage of large rarely edited binary data (e.g. photos).
The costs that make the current system untenable are shown below.
Fermyon key/value storage
Based off the Growth plan from https://www.fermyon.com/pricing at $19.39/month for 2GB of key value storage. This works out to:
$19.39 / 2^30 bytes
= $0.00000001805834472179412841796875 per byte
= $0.0000184917449951171875 per kb
= $0.018935546875 per mb
Assuming each user uploads 4 high quality images at 4 mb per image this is $0.30296875 per user per month. With 1,000 users this is $302.96875 per month.
AWS S3
Based off https://aws.amazon.com/s3/pricing/ at $0.023 per GB per month. This works out to $0.0000224609375 per mb. Which at 4 high quality images at 4mb per image this is $0.000359375 per user. With 1,000 users this is $0.359375 per month.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading the linked dynamic-configuration documentation for the existing libSQL storage-provider capability and compare it with the stated S3 object-storage use case. Define what an S3 key/value storage provider interface should support; the issue does not name implementation files, tests, or more specific completion criteria.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- aws, rust
- Domain
- backend, cloud
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100