block / block/cachew

Problem: Replicas need to know when mutable cached objects (like snapshots) are stale, and identical commits can produce different snapshot bytes causing needless churn.

Open
#371 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Go
Stars
41
Forks
12
PR merge metrics
No merged PRs in 30d

Description

Still open: Whether the caller-specified ETag approach is worth the added complexity vs. just living with content-hash ETags and solving dedup separately as a "content SHA" attribute on mutable resources.

Trade-offs of caller-specified ETags — Content-hash ETags are simpler (every cache layer just hashes on write, no caller involvement), but caller-specified ETags better solve the dedup problem. Downside: can't leverage native S3 ETags, and the caller or cache impl needs to generate/supply the ETag upfront.

Upstream ETag passthrough — An additional advantage of caller-specified ETags: when proxying to upstream servers like Artifactory, cachew can directly use their ETag end-to-end without recomputing anything.

Contributor guide

Open the contributing guide

Research direction

The issue does not identify any files, tests, or entry points. Start by mapping cachew's ETag and mutable-resource handling, then resolve whether caller-specified ETags or content-hash ETags plus a separate content SHA should be supported; done requires an agreed design and implementation scope.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
backend
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.