Post

Meet ☁️ Cumulus: an atproto blob proxy on Cloudflare Workers Cache. Supports Bluesky-compatible image resizing, mimetype filtering, CID verification. Run a lexicon-scoped instance just for your app. Subscribes to labelers to purge account and record !takedowns.

github.comGitHub - ascorbic/cumulus: ATProto blob proxy on Cloudflare Workers CacheATProto blob proxy on Cloudflare Workers Cache. Contribute to ascorbic/cumulus development by creating an account on GitHub.

12 reposts109 likes

Very nice! Should help with people serving Bluesky profile images and rely less on Bluesky infra. I would have a route specifically for resolving a DIDs bsky profile image since that’d be such a common use case

workers cache api is per colo and can evict any time right? curious how cold pops handle a blob the labeler webhook already purged upstream, straight origin refetch or a read through to r2 first?

No, it's regional and tiered like the CDN. If there's a cache miss it will check the labeler before fetching from the origin PDS.

good to know it checks the labeler before origin, keeps a purged blob from getting served stale on a cold pop. does the tier lookup add noticeable latency on a full miss or is it fast enough nobody notices

It won't add much. Most of the cost will be the fetch from the origin PDS, which is fully buffered so it can verify the CID, and then for images the time to do the transform.