Skip to content

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

Description

@alecthomas

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions