mastodon / mastodon/fasp_ruby

Storage Server Notes

Open
#172 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Ruby
Stars
16
Forks
2
Avg merge
1d 12h
Merged PRs (30d)
2

Description

Regional storage server accepting file uploads (bypassing the regional instance server)

Most servers are regional... as HA across regions is generally a heavy engineering effort.
This generally means that the speed and success of uploading files depends on the location of the client to the server. A client on the other side of the world with a bad route might upload slowly or not at all.

My understanding is the file path travels... client -> Web -> Sidekiq -> S3 bucket -> CDN -> Client

This is obviously a stretch goal as I believe this "storage server" project is to store/cache media from mastodon instances as a CDN layer and not a primary data source... but I'd imagine instances COULD have multiple storage servers around the world that accept inbound files.

A nice ANYCAST IP or GEO-Aware DNS that points to the faster local server for any client around the world but the file ends up on the local instances control would be a nice bonus.

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

No files, tests, or entry points are named. Start by tracing the described client → Web → Sidekiq → S3 bucket → CDN → Client path and reviewing the storage server project's scope; the issue does not define a concrete implementation target or completion criteria.

Written by the indexing model from the issue text.

Assessment

Tech stack
aws, ruby
Domain
backend, cloud, distributed-systems
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.