spinframework / spinframework/spin

Add an S3 key/value storage provider interface

Open
#2,606 3 comments 0 reactions 0 assignees View on GitHub

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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.